Перемещение файла на основе расширения из старой папки в новую, а затем добавление префикса к файлу в новой папке на основе имени предыдущей папки [закрыто]

У меня есть два файла в папке A, и я хотел бы переместить один из файлов, если это текстовый файл, в новую папку. Структура и содержимое папки таковы, что

Папка A содержит два файла: book.txt и book.csv.

Я хочу переместить только текстовый файл в новую папку с именем Папка B. В конце я надеюсь увидеть следующие структуры и содержимое папок.

Папка A
|
| ___ book.csv

Папка B
|
| ___ Папка A_book.txt

Код, который я могу использовать, следующий, но он не сработал.

for file in *; find . -name '*.txt'; -exec mv '$file'.{} ./Folder\ B;

Пожалуйста, посоветуйте мне.

1
задан 28 February 2021 в 14:02

1 ответ

Это будет однострочный:

for f in *.txt; do mv "$f" ../Folder\ B/"${PWD##*/}"_"$f"; done

или многострочный эквивалент:

for f in *.txt
    do 
    mv "$f" ../Folder\ B/"${PWD##*/}"_"$f"
    done

Предполагая, что Папка A и Папка B находятся на одном уровне, запустите приведенный выше код ( либо один ) из папки A .

0
ответ дан 18 March 2021 в 23:30

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

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