Перемещение всех файлов в папке в другую папку без перемещения вложенных папок

Я не вижу репозиторий Developer Toolset в вашем списке; Я предлагаю использовать Получение доступа к Руководству пользователя Red Hat Developer Toolset для достижения вашей цели.

Первый шаг — получить доступ к программному обеспечению с помощью Red Hat Software Collections или Red Hat Developer Tools. Например, используя инструменты разработчика на рабочей станции RHEL, вы должны:

  1. включите репозиторий с помощью :subscription-manager repos --enable rhel-7-workstation-devtools-rpms, а затем

  2. Добавьте ключ Red Hat Developer Tools в вашу систему:

    # cd /etc/pki/rpm-gpg
    # wget -O RPM-GPG-KEY-redhat-devel https://www.redhat.com/security/data/a5787476.txt
    # rpm --import RPM-GPG-KEY-redhat-devel
    
  3. Затем установите git:yum install gitили метапакет:yum install devtoolset-2-vcили весь набор инструментов:yum install devtoolset-2

-2
03.10.2020, 17:03
3 ответа

Вы можете использовать findиmv:

Вот мои настройки папки:

$ find folder1
folder1
folder1/subfolder2
folder1/subfolder2/i
folder1/subfolder2/h
folder1/subfolder2/g
folder1/subfolder1
folder1/subfolder1/f
folder1/subfolder1/e
folder1/subfolder1/d
folder1/c
folder1/b
folder1/a

Чтобы смоделировать ваш случай, я хочу переместить a, bи cв subfolder2:

.
$ find folder1 -maxdepth 1 -type f -exec mv "{}" folder1/subfolder2 \;

Теперь, если я посмотрю на содержаниеfolder1:

$ find folder1
folder1
folder1/subfolder2
folder1/subfolder2/a
folder1/subfolder2/b
folder1/subfolder2/c
folder1/subfolder2/i
folder1/subfolder2/h
folder1/subfolder2/g
folder1/subfolder1
folder1/subfolder1/f
folder1/subfolder1/e
folder1/subfolder1/d
1
18.03.2021, 23:00

Используйте findи xargs. Прочтите man find xargs. Поскольку вы не сказали, как выглядят имена файлов (, встроенные пробелы, другие забавные символы ), я буду использовать -print0.

find folder1 -maxdepth 1 -type f -print0 | \
    xargs -0 -r mv --target-directory=subfolder2
-1
18.03.2021, 23:00

Чтобы переместить не -файлы каталога вfolder1(скрытые, исключенные )в folder1/subfolder2, в оболочке zsh, вы должны сделать:

mv folder1/*(^/) folder1/subfolder2/

Для перемещения всех файлов независимо от их типа, кромеsubfolder1(и, очевидно, также subfolder2):

set -o extendedglob # best in ~/.zshrc
mv folder1/^(subfolder1|subfolder2) folder1/subfolder2

Чтобы также перемещать скрытые файлы, добавьте квалификатор Dglob.

1
18.03.2021, 23:00

Теги

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