Как переместить файлы и каталоги в родительскую папку в Linux?
В Linux (Ubuntu), как переместить все файлы и каталоги в родительский каталог?
В Linux (Ubuntu), как переместить все файлы и каталоги в родительский каталог?
Я пришел сюда, потому что я тоже новичок в этой теме. По какой-то причине вышесказанное не помогло мне. То, что я сделал, чтобы переместить все файлы из dir в родительский dir, было:
cd to/the/dir
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
, но я думаю, что это приятно знать.
Метод, который не вызывает ошибок и работает каждый раз:
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
```.
Нет необходимости менять каталоги. Просто включите * в конце пути:
mv /my/folder/child/* /my/folder/
Выше перемещает только не скрытые файлы. Для перемещения только скрытых файлов используйте .* 0x2*
mv /my/folder/child/.* /my/folder/
Выше два могут быть объединены в одну команду:
mv /my/folder/child/{.,}* /my/folder/
Также смотрите Как переместить все файлы, включая скрытые файлы, в родительский каталог по адресу * .
Предположив, что все ваши скрытые файлы начинаются с точки, за которой следует буква или цифра (которая должна быть), вы можете использовать
mv * .[A-Za-z0-9]* ..
Часть .[A-Za-z0-9]*
заключается в том, чтобы убедиться, что вы не пытаетесь переместить .
или ..
, что может привести к неудаче.
Просто переместить все файлы и папки в родительский каталог в 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 (родительский каталог).