我需要监视下载目录,并跟踪将文件写入目录的顺序。我知道这在macOS中是唯一的方法是fswatch
,但是与Linux上的inotifywatch
相比,文档似乎很稀疏。
例如,如果将001.jpg
然后003.jpg
然后002.jpg
(按该顺序)下载到目录,则需要一个如下所示的变量:001.jpg 003.jpg 002.jpg
在这种情况下,我只需要监视新文件,而不需要监视已修改的文件。例如,如果001.jpg
被修改,则不应将其移到列表的末尾。
答案 0 :(得分:0)
Bash脚本handle_order.sh
将保持track_order
文本文件中的顺序
#!/bin/bash
echo "new file is added $1"
filename=$(basename ${1})
echo $filename
if [ $filename != "track_order.txt" ]; then
echo "${filename}" >> track_order.txt
else
echo "order is updated"
fi
fswatch
命令
fswatch ./DRS-1.1.0/ --event Created | xargs -I '{}' sh -c './handle_order.sh "$1"' - {}
(./DRS-1.1.0/)
您需要监视的目录名称(handle_order.sh)
bash脚本,它将处理订单并更新track_order.txt文件(Created)
仅创建一个事件已更新:
删除handle_order.sh
并以单个命令运行
fswatch ./DRS-1.1.0/ --event Created | xargs -I '{}' sh -c 'filename=$(basename ${1});echo $filename;if [ $filename != "track_order.txt" ]; then echo "${filename}" >> track_order.txt; else echo "order is updated";fi' - {}