Как переместить несколько каталогов, но исключить файлы в текущем пути с похожим именем?
Скажем, у меня есть каталог, который содержит следующее:
dir1/
dir2/
dir3/
...
dir50/
dir1.txt
dir2.txt
dir3.txt
...
dir50.txt
Я использовал mv dir* /someotherpath/, затем переместил файлы *.txt обратно. Есть ли способ перемещать только каталоги?
3 ответа
Решение
Если ваша структура каталогов только 1 уровень mv dir*/ destination
выполнит эту задачу.
Вы также можете использовать find
выполнить эту задачу
find . -maxdepth 1 -type d -name "dir*" -exec mv '{}' destination/ \;
+ Изменить maxdepth
параметр или удалите его, если ваша структура каталогов имеет больше уровней
С такой файловой структурой:
/dir2move2
/dir
/subdir1
/subdir2
index.js
Чтобы переместить только подкаталоги, а не файлы, которые вы могли бы просто сделать:
mv ./dir/*/ ./dir2move2