Подкаталоги MV на один уровень выше, но не до корневого

Ваши закомментированные вызовы работают для приложений, поддерживающих уведомления о запуске — на самом деле пример «Запустить iceweasel в рабочей области 3 (один раз)» в руководстве пользователя имеет почти такой же exec команда:

exec --no-startup-id i3-msg 'workspace 3; exec iceweasel; workspace 1'

Однако Atom , похоже, не поддерживает уведомления о запуске, поэтому вам нужно продолжать использовать метод assign.

1
09.08.2017, 02:47
2 ответа
find /root -maxdepth 6 -mindepth 6 -type d | awk -F \/ '{ print "mv "$0" "$1"/"$2"/"$3"/"$6 }' | sh

Используйте команду find, уделяя особое внимание максимальной и минимальной глубине каталогов, затем возьмите листинг и проанализируйте его с помощью awk, чтобы создать команду mv, которую мы можем выполнить с помощью sh. Удалите «| sh» для проверки перед добавлением для выполнения.

-1
28.01.2020, 02:12

Поскольку файлы должны располагаться в разных каталогах, вам нужно запустить mvнесколько раз, по крайней мере один раз для каждого целевого каталога. Вы можете сделать это, запустив mvв цикле for .

for x in /root/*
do
  mv -i "$x"/*/*/*/* "$x"
done

Тело цикла (команда mv)выполняется для каждой записи в каталоге /rootпо очереди. При каждом выполнении тела цикла "$x"заменяется путем /root/subN.Команда mv -i "$x"/*/*/*/* "$x"перемещает файл типа /root/sub1/aaaa/bbbb/cccc/ddddв каталог /root/sub1, т.е. файл перемещается в /root/sub1/dddd.

С опцией -i, mvспросит, существует ли файл назначения, что может произойти, если у вас есть, например. как /root/sub1/aaa1/bbb/ccc/ddd, так и /root/sub1/aaa2/bbb/ccc/ddd.

0
28.01.2020, 02:12

Теги

Похожие вопросы