Відповіді:
З папкою під назвою "myfolder" і на один рівень в ієрархії файлів (точка, яку ви хочете поставити) команда буде:
mv myfolder/* .
Так, наприклад, якщо дані були /home/myuser/myfolderтоді з /home/myuser/запуску команди.
.*. Видалення оригінальної папки є тривіальним і не вимагається, тому ми дозволимо ОП впоратися з цим.
*і .*в одному рядку? просто цікавість
mvбуде джерелами, за винятком аргументу LAST, який повинен бути цільовим для переміщення (а у випадку кількох джерел - папкою).
/bin/mv: Argument list too long
Просто для того, щоб зробити його кришталево зрозумілим, взятим з відповіді Руду вище та коментарів.
Якщо вам потрібно перемістити весь вміст, Включаючи файли, які починаються з a. (наприклад, .htaccess, .git тощо), вам потрібно включити в команду і *, і *. Так:
mv subfolder/* subfolder/.* .
Це перемістить вміст підпапки до вашої поточної папки. Зверніть увагу на пробіл до останнього ".".
mv: rename fake/. to ./.: Invalid argumentіmv: rename fake/.. to ./..: Invalid argument
Це можливо за допомогою наступних методів:
Використання rsync:
rsync -vua --delete-after foo/ .Використання cpта rmdir:
cp -vaR foo/. . && rmdir foo/Використання mv(з dotglobувімкненою опцією):
shopt -s dotglob # Includes filenames beginning with a dot.
mv -- foo/* . # Where foo/ is the folder consisting the files.
shopt -u dotglob # Disables previously enabled dotglob option.
де foo/ваша папка, вміст якої потрібно перемістити на один рівень вгору.
Див .: help shoptі man bash.
Використання mv(як тут запропоновано ):
mv foo/* foo/.[^.]* . && rmdir foo/
Примітка: Це буде пропустити файл з ім'ям foo/..bar...
Примітка. Для оболонок POSIX вам потрібні [!.].
-v, -u, -aі -rробити? AFAICT, -vє багатослівним, що просто робить rsync друкувати більше інформації. -uозначає оновлення - скопіюйте файл лише в тому випадку, якщо він новіший. Це не здається актуальним. -aозначає архів. Це скопіює власника та дозволи файлу та зробить синхронізацію рекурсивною. -rозначає рекурсивний, але це вже охоплено -a.
-uкорисно, коли ви не хочете витрачати зайвий час на переміщення даних, які вже є (особливо для повільних пристроїв зберігання даних). Я видалив -r, оскільки він охоплений, -aяк ви згадали.
mv foo/* foo/.[^.]* .буде пропущено файл, викликаний, foo/..bar..наприклад. Зауважте, що для оболонок POSIX вам потрібні [!.].
rsync -vua --delete-after foo/ .видаляється все інше, що вже існує в поточному каталозі.
просто видайте команду mv
mv (directory)/* .
якщо ви хочете видалити каталог, тоді додайте
rm -rf (directory)
Передбачається, що ви перебуваєте у батьківському каталозі (каталогу)
Якщо ви всередині (каталогу), то
mv * ../
.DS_storeу macOS. mvВище команда не буде рухатися ті (без dotglobнабору).
для тих, хто на спільному сервері, вам доведеться використовувати щось подібне
Для переміщення файлів
mv -v ~/public_html/public_html/* ~/public_html/
Щоб скопіювати файли
cp -a ~/public_html/public_html/* ~/public_html/
.*не лише,*якщо в архіві містяться крапки-файли. Також додайте до кінця `&& rmdir myfolder`, щоб видалити сторонні папки. Це збереження, оскільки воно запуститься лише у тому випадку, коли mv поверне успіх AND, оскільки rmdir не видалить не порожній каталог.