Рейтинг:2

как рекурсивно удалить файлы из одной папки, если имя файла не отображается в другой папке

флаг in

У меня есть две папки, в одной из которых находятся файлы txt, а в другой — файлы .jpg с точным именем. Однако файлы txt — это гораздо больше, чем файлы jpg.

папка_1/00.txt
папка_1/01.txt 
папка_1/02.txt 
папка_1/03.txt 
папка_1/04.txt   

папка_2/00.jpg
папка_2/01.jpg 
папка_2/02.jpg 

Вот, мне нужно удалить 03.txt и 04.txt потому что эти имена не отображаются в папке_2

Рейтинг:3
флаг cn

Вот один из способов:

$ для файла в папке_1/*.jpg; делать 
    имя_файла="${файл##*/}"
    [[ -e folder_2/${fileName/.txt/.jpg} ]] || эхо rm -- "$ файл"
сделано
rm -- папка_1/03.txt
rm -- папка_1/04.txt

за цикл перебирает все нескрытые файлы и каталоги в папка_1 чье имя заканчивается на .jpg, сохраняя каждый как $файл. Следующий, имя_файла="${файл##*/}" устанавливает переменную $fileName к стоимости $файл со всем до последнего / удалено, что означает, что это будет имя файла без каталога. Наконец, с [[ -e folder_2/${fileName/.txt/.jpg} ]] || эхо rm -- $file, мы проверяем, есть ли файл в папка_2 с таким же названием, но .текст продление и, если нет, эхо rm -- "$ файл". Если это делает то, что вы хотите, удалите эхо и запустите снова, чтобы фактически удалить файлы:

для файла в папке_1/*.jpg; делать 
    имя_файла="${файл##*/}"
    [[ -e folder_2/${fileName/.txt/.jpg} ]] || рм -- "$ файл"
сделано

-- в рм -- "$ файл" здесь не обязательно, но это хорошая привычка: она гарантирует, что что-либо после -- не анализируется как вариант г.м., что позволяет команде также работать с именами файлов, начинающимися с -.

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.