Как я могу использовать команду bash для перемещения набора каталогов из одного места в другое

Вы также можете использовать Xscreensaver Phosphor и просто дать ему это для ввода ...

0
задан 26 September 2017 в 23:21

6 ответов

Вы можете просто добавить условие, чтобы проверить, является ли элемент папкой.

for i in *; do
  if [ -d "$i" ] ; then
    mv "$i" /home/some_user/some_folder/"$i"
  fi
done
1
ответ дан 22 May 2018 в 18:05
  • 1
    Конечно, скорректируйте подстановочный знак в соответствии с вашими потребностями, и фильтрация всех папок, заканчивающихся на txt, на самом деле не имеет смысла. – olivierb2 26 September 2017 в 23:20
  • 2
    Нет необходимости в glob и , тогда проверьте каталоги здесь. Посмотрите первую альтернативу в моем ответе. – David Foerster 27 September 2017 в 10:13

Вы можете просто добавить условие, чтобы проверить, является ли элемент папкой.

for i in *; do if [ -d "$i" ] ; then mv "$i" /home/some_user/some_folder/"$i" fi done
1
ответ дан 18 July 2018 в 06:10

Вы можете просто добавить условие, чтобы проверить, является ли элемент папкой.

for i in *; do if [ -d "$i" ] ; then mv "$i" /home/some_user/some_folder/"$i" fi done
1
ответ дан 24 July 2018 в 18:32

С совпадением шаблона оболочки «glob»

mv -t /home/some_user/some_folder -- */
-t инструктирует mv перемещать все перечисленные объекты в каталог, обозначенный путем, следующим за -t. */ соответствует и расширена до имен всех (не скрытых) каталогов в текущем каталоге. Обратите внимание на окончательный /, который ограничивает соответствие glob каталогам! (Если вам нужно включить скрытые имена файлов, начиная с ., включите опцию dotglob с помощью shopt -s dotglob.)

С совпадением шаблонов

[ f2] -t инструктирует mv перемещать все перечисленные объекты в каталог, обозначенный путем следующего -t.

-t инструктирует mv перемещать все перечисленные объектов в каталог, обозначаемый путём, следующим за -t.

*/ соответствует и расширена до имен всех (не скрытых) каталогов в текущем каталоге. Обратите внимание на окончательный /, который ограничивает соответствие glob каталогам! (Если вам нужно включить скрытые имена файлов, начиная с ., включите опцию dotglob с shopt -s dotglob.)
1
ответ дан 22 May 2018 в 18:05

С совпадением шаблона оболочки «glob»

mv -t /home/some_user/some_folder -- */ -t инструктирует mv перемещать все перечисленные объекты в каталог, обозначенный путем, следующим за -t. */ соответствует и расширена до имен всех (не скрытых) каталогов в текущем каталоге. Обратите внимание на окончательный /, который ограничивает соответствие glob каталогам! (Если вам нужно включить скрытые имена файлов, начиная с ., включите опцию dotglob с помощью shopt -s dotglob.)

С совпадением шаблонов

find . -minepth 1 -maxdepth 1 -type d -exec mv -t /home/some_user/some_folder -- {} + -t инструктирует mv перемещать все перечисленные объекты в каталог, обозначенный путем следующего -t.

-t инструктирует mv перемещать все перечисленные объектов в каталог, обозначаемый путём, следующим за -t.

*/ соответствует и расширена до имен всех (не скрытых) каталогов в текущем каталоге. Обратите внимание на окончательный /, который ограничивает соответствие glob каталогам! (Если вам нужно включить скрытые имена файлов, начиная с ., включите опцию dotglob с shopt -s dotglob.)
1
ответ дан 18 July 2018 в 06:10

С совпадением шаблона оболочки «glob»

mv -t /home/some_user/some_folder -- */ -t инструктирует mv перемещать все перечисленные объекты в каталог, обозначенный путем, следующим за -t. */ соответствует и расширена до имен всех (не скрытых) каталогов в текущем каталоге. Обратите внимание на окончательный /, который ограничивает соответствие glob каталогам! (Если вам нужно включить скрытые имена файлов, начиная с ., включите опцию dotglob с помощью shopt -s dotglob.)

С совпадением шаблонов

find . -minepth 1 -maxdepth 1 -type d -exec mv -t /home/some_user/some_folder -- {} + -t инструктирует mv перемещать все перечисленные объекты в каталог, обозначенный путем следующего -t.

-t инструктирует mv перемещать все перечисленные объектов в каталог, обозначаемый путём, следующим за -t.

*/ соответствует и расширена до имен всех (не скрытых) каталогов в текущем каталоге. Обратите внимание на окончательный /, который ограничивает соответствие glob каталогам! (Если вам нужно включить скрытые имена файлов, начиная с ., включите опцию dotglob с shopt -s dotglob.)
1
ответ дан 24 July 2018 в 18:32

Другие вопросы по тегам:

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