Одним из подходов может быть использование grep в сочетании с xargs:
ls -A | egrep -v sonDir | xargs -i mv {} sonDir
- сначала перечислите все файлы и папки в текущем каталоге (например, FatherDir) с помощью
ls
- не забудьте также прочитать скрытые файлы с флагом
-A
egrep -v
позволяет исключить sonDir из распечатанного вывода
- создайте командную строку из стандартного ввода с помощью
xargs
и замените {}
на имя файла. Опция -i
здесь обязательна!
Это оно! Я использую этот подход довольно часто, поскольку он позволяет исключить не только папку, но и разные папки и файлы одновременно. Если вы хотите исключить, например, sonDir
daughterDir
и nephew.file
вы можете сделать это, просто указав egrep -v '(sonDir|daughterDir|nephew.file)'
, остальная часть показанной выше команды останется прежней ... и есть много вариаций!