У меня есть каталог с большим количеством файлов и каталогов в нем. Чтобы привести это в порядок, я собираюсь поместить все эти файлы в каталог, поэтому я собирался сделать что-то вроде этого:
$ ls | wc -l
123
$ mkdir new_directory
$ mv * ./new_directory
Однако это , очевидно , не будет работать , потому что тогда он будет пытаться двигаться new_directory
в new_directory
. Есть ли какой-нибудь простой способ сделать то, что я хочу в одной строке, без необходимости копировать и вставлять все файлы и каталоги в этом каталоге?
Ответы:
Ваш
команда действительно будет работать; он просто выведет предупреждение, что он не может переместить этот каталог в себя.источник
git mv
вы должны использовать-k
флаг, так как git по умолчанию завершится с ошибкой, а не просто выдаст предупреждение. Так что вам нужно сделатьgit mv -k * ./new_dir
.Быстрый и грязный вкладыш.
источник
Если вы просто ищете файлы (т.е. не каталоги), то
это самое портативное решение. Для скорости вам следует переместить find и xargs с -print0 и -0, но только если у вас есть GNU find и xargs.
источник
find
- хотя я определенно был на системах, которые не имеют, к сожалению :(Когда я столкнулся с этой проблемой, я сделал одно из следующего:
или
Вторая форма использует преимущества пропуска имен файлов, которые начинаются с '.'
источник
как насчет:
Итак, не перемещайте содержимое в новый каталог, но поместите этот каталог в новый.
источник
По аналогии с ответом @ Rembrane (хотя и не однострочно):
Это должно быть на 100% портативно - даже если к
find
сожалению отсутствует в вашей системе.источник
Мои предложения: как заявили другие
будет работать найти IFF, полное расширение достаточно короткое.
В противном случае вы можете попробовать этот, который масштабируется до гораздо большего числа файлов:
объяснение
источник
-print0
и-0
и это все еще перерывами.Использование:
Со
xargs
страницы руководства :источник
Чтобы избежать сообщения об ошибке и сделать его простым:
будет делать то же самое, но избегать сообщения об ошибке (если у вас нет точек в именах папок, я думаю).
источник