Ответы:
находить . -maxdepth 1 -exec mv {} .. \;
это также переместит скрытые файлы.
Вы получите сообщение:
mv: не может двигаться `. ' to `../. ': устройство или ресурс занят
когда он пытается переместиться .
(текущий каталог), но это не причинит никакого вреда.
-maxdepth 1
чтобы быть уверенным.
Я пришел сюда, потому что я новичок в этом вопросе. По какой-то причине вышесказанное не помогло мне. Что я сделал, чтобы переместить все файлы из директории в родительскую директорию:
cd to/the/dir
mv * ../
(cd ${ANDROID_NDK_HOME}/android-ndk-r14b/ && mv * ../)
Введите это в оболочке:
mv *.* ..
Это перемещает ВСЕ файлы на один уровень вверх.
Персонаж *
подстановочный знак. Таким образом, *.deb
будут перемещены все файлы .deb, и Zeitgeist.*
Zeitgeist.avi и Zeitgeist.srt переместятся на одну папку вверх, поскольку, разумеется, это ..
указывает на родительский каталог.
Чтобы переместить все, включая папки и т. Д., Просто используйте *
вместо*.*
*
не хотите *.*
включать каталоги
Это не может быть проще, чем:
mv * ../
Чтобы также переместить скрытые файлы:
mv /path/subfolder/{.,}* /path/
mv
является командой для перемещения файлов, *
означает все файлы и папки и ../
является путем к родительскому каталогу.
В bash вы можете использовать shopt -s dotglob, чтобы * сопоставлять все файлы и перемещать их просто
shopt -s dotglob; mv * ..
Это не лучшее решение, поскольку параметр является постоянным для оболочки, пока вы не измените его
shopt -u dotglob
но я думаю это приятно знать.
(shopt -s dotglob && mv * ..)
. Таким образом, опция является локальной только для этой подоболочки.
Метод, который не вызывает ошибок и работает каждый раз:
ls -1A . | while read -r file
do
mv "./${file}" ..
done
find . -maxdepth 2 -type f -exec mv {} .. \;
Я использовал вариант выше, чтобы переместить все файлы из подпапок в родительский.
Я собирал данные в папках по годам, но, обнаружив, используя метаданные, я мог хранить их в одной папке, что облегчало управление.
например.
/data/2001/file_1
/data/2002/file_2
/data/2003/file_3
В Linux просто переместить все файлы и папки в родительский каталог.
Перейдите в эту папку и используйте эту команду:
mv * /the full path
Например, если ваши файлы и папки выглядят следующим образом:
/home/abcuser/test/1.txt
2.txt
3.jpg
4.php
1folder
2folder
Перейдите в эту папку через cd:
cd /home/abcuser/test
mv * /home/abcuser
Все ваши файлы и папки будут перемещены в папку abcuser (родительский каталог).
/the full path
не работает в Linux, вы должны избегать пробелов с /the\ full\ path
.
Нет необходимости менять каталоги. Просто включите * в конце пути:
mv /my/folder/child/* /my/folder/
Выше только перемещаются не скрытые файлы. Для перемещения используйте только скрытые файлы. *
mv /my/folder/child/.* /my/folder/
Выше двух можно объединить в одну команду:
mv /my/folder/child/{.,}* /my/folder/
Также смотрите: Как переместить все файлы, включая скрытые, в родительский каталог через *
перейдите в подкаталог и выполните следующую команду для копирования или перемещения файлов.
Пример: a является родительским каталогом, а b является вложенным каталогом, мы хотим переместить / скопировать все файлы из b в a (вложенный каталог в родительский каталог).
cd b
cp * ..
mv * ..