У мене папка в папці A. Я хочу перемістити файли з усіх цих папок у A.
Або
Я хочу вирізати всі файли з дочірніх папок і вставити їх у батьківську папку.
Як це зробити?
mv */* .не переміщуватиме файли з підпапок підпапок.
У мене папка в папці A. Я хочу перемістити файли з усіх цих папок у A.
Або
Я хочу вирізати всі файли з дочірніх папок і вставити їх у батьківську папку.
Як це зробити?
mv */* .не переміщуватиме файли з підпапок підпапок.
Відповіді:
Перейдіть у свій Aкаталог і запустіть
find . -mindepth 2 -type f -print -exec mv {} . \;
що означає "знайти всі файли в цьому каталозі та його підкаталогах та виконати mv з цільовою директорією.
findви можете бути трохи елегантнішими і не породити mvпроцес для кожного файлу:find A -mindepth 2 -type f -exec mv -t A \{\} +
find . -mindepth 2 -type f -print -exec mv --backup=numbered {} . \;
Добре, ви можете створити файл і назвати його "cutme" (щоб створити файл, який називається cutme в термінальному типі nano cutme. Щоб зберегти його, натисніть CTRL + X, потім натисніть ENTER.), Наприклад, вставте в нього припущення, якщо:
find * -type f -print -not -type d -and -not -regex 'cutme' -exec mv {} .. \;
Зверніть увагу на ім'я cutme всередині рядка. Це має бути таким же, як і сценарій, який ви будете запускати.
Створивши файл і вставивши вищевказаний рядок, запустіть наступне в тій же папці, що і сценарій:
chmod +x cutme. Це дасть новий файл прапор «виконуваний файл» , так що ви можете виконати це в такий спосіб : ./cutme.
mv */* .:?