У меня есть каталог, который распакован, но находится в папке. Как я могу переместить содержимое на один уровень выше? Я получаю доступ к CentOS через SSH.
127
С папкой myfolder и уровнем иерархии файлов на один уровень выше (точка, которую вы хотите указать), команда будет выглядеть так:
mv myfolder/* .
Так, например, если данные были в /home/myuser/myfolder
то время от /home/myuser/
запуска команды.
.*
не только*
если архив содержит точечные файлы. Также добавьте `&& rmdir myfolder` до конца, чтобы удалить ненужную папку. Это сохранение, потому что оно будет работать только в том случае, если mv вернет успех И потому, что rmdir не удалит непустой каталог.*
. Удаление оригинальной папки является тривиальным и не требуется, поэтому мы позволим OP разобраться с этим самостоятельно.*
и.*
в одну строку? просто любопытствоmv
будут источниками, кроме аргумента LAST, который должен быть целью перемещения (а в случае нескольких источников должен быть папкой)./bin/mv: Argument list too long
Просто чтобы сделать это кристально ясным, взятым из ответа Руду выше и комментариев.
Если вам нужно переместить все содержимое, включите файлы, которые начинаются с. (например, .htaccess, .git и т. д.), вам нужно включить и * и. * в вашу команду. Вот так:
Это переместит содержимое подпапки в вашу текущую папку. Обратите внимание на пробел перед последним "."
источник
mv: rename fake/. to ./.: Invalid argument
иmv: rename fake/.. to ./..: Invalid argument
Это возможно с помощью следующих методов:
Использование
rsync
:Использование
cp
иrmdir
:Использование
mv
(сdotglob
включенной опцией):где
foo/
находится ваша папка, содержимое которой нужно переместить на один уровень вверх?Смотрите:
help shopt
аman bash
.Используя
mv
(как предложено здесь ):Примечание. Будет пропущен файл с именем
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
если вы хотите удалить каталог, затем добавьте
Предполагается, что вы находитесь в родительском каталоге (каталог)
Если вы находитесь в (каталоге), то
источник
rmdir
жалуется и выходит, если каталог не пустой, аrm -r
вместо этого просто удалил бы его и все его содержимое. (Это пока-иго .).DS_store
в macOS. Командаmv
выше не будет перемещать их (безdotglob
набора).для тех из вас, на общем сервере, вы должны использовать что-то вроде этого
Переместить файлы
mv -v ~/public_html/public_html/* ~/public_html/
Чтобы скопировать файлы
cp -a ~/public_html/public_html/* ~/public_html/
источник