Как найти определенный файл (txt) в определенном каталоге (-mmin -1)? - PullRequest
0 голосов
/ 02 декабря 2010
 /usr/local/bin/growlnotify -m 'Looking for subtitles...'
 found='find /Users -type d -mmin -1'
 found1='find $found/*.txt'

 if [ -d "$found1" ];
      then
     /usr/local/bin/growlnotify -m "Subtitles downloaded!"
   else
     /usr/local/bin/growlnotify -m "Could not download subtitles"
 fi

Я пытаюсь написать bash-скрипт, который найдет папку, в которую приложение загрузило субтитры, и сообщит пользователю, используя рычаг, если они есть или нет.

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

Пожалуйста, помогите =)

Извините за мой английский

Ответы [ 2 ]

1 голос
/ 21 января 2011

спасибо за ответы! Это то, что я использовал, и то, что, кажется, работает просто отлично:

for FILE in "$@"
do
if [ -e "${FILE%.*}.txt" ];
                then
                     /usr/local/bin/growlnotify -a iNapi -m "Napisy zostały pobrane!"
                else
                    /usr/local/bin/growlnotify -a iNapi -m "Nie udało się pobrać napisów."
            fi
done
0 голосов
/ 20 января 2011

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

Во всяком случае, прежде всего, вы должны сделать:

found=`find /Users -type d`

(обратите внимание на использование `а не ')

Это будет хранить в $ найдено список каталогов в / Users, параметр -mmin 1 просто перечисляет те каталоги, которые были созданы в последнюю минуту, если это правильно, просто добавьте его снова.

Позже, вам нужно зациклить результаты для поиска текстовых файлов:

for d in $found; do
   #here you do ll or find for .txt files, using $d as dir
done

Этот путь не самый лучший для меня, я думаю, что вы можете просто сделать:

find /Users -name *.txt

и затем посмотрите, что у вас получится, вывод find выведет каталог, в котором находится каждый текстовый файл, и это то же самое, что вы пытаетесь сделать, но только один шаг.

...