Следующий скрипт отобразит список «новых файлов» и «старых файлов» в каталоге. Под «новыми файлами» подразумеваются файлы, которые были изменены после последнего запуска скрипта, а под «старыми файлами» подразумеваются не измененные с момента последнего запуска скрипта.
Сценарий записывает выходные данные date
в «файл отметки времени» и использует этот файл при следующем запуске, чтобы определить, какие файлы были изменены. при первом запуске вывод не производится.
Сценарий следует запускать вручную, и, поскольку он написан, он даст вам только возможность определить, какие файлы были изменены в определенном каталоге.
#!/bin/sh
topdir=$HOME # change this to point to the top dir where your files are
stamp="$topdir/timestamp"
if [ -f "$stamp" ]; then
echo 'New files:'
find "$topdir" -type f ! -name timestamp -newer "$stamp"
echo 'Old files:'
find "$topdir" -type f ! -name timestamp ! -newer "$stamp"
fi
date >"$stamp"
Можно изменить на
-name 'pattern'
, например. -name 'A156.1.[abxyz]'
), -cnewer
вместо -newer
, если ваш find
поддерживает это ), Самый простой способ «экспортировать» переменную оболочки db
в программу, которую запускает скрипт, — это передать ее в качестве аргумента, а затем команда python сможет прочитать ее из sys.argv
.
Это может выглядеть так:
while IFS= read -r db
do
printf "%s\n" "${db} Found"
python -c 'import sys; print("db: %s" % sys.argv[1])' "$db"
done < path/to/file.txt