如何使用 fswatch 跟踪目录中新创建文件的顺序
How to track order of newly created files in directory with fswatch
我需要监控下载目录,并跟踪文件写入目录的顺序。我知道这在 macos 中可行的唯一方法是 fswatch
,但与 linux 上的 inotifywatch
相比,文档似乎相当稀疏。
例如,如果 001.jpg
然后 003.jpg
然后 002.jpg
下载到目录(按此顺序),我需要一个如下所示的变量:001.jpg 003.jpg 002.jpg
在这种情况下我只需要监控新文件,而不是修改过的文件。例如,如果修改了001.jpg
,则不应将其移至列表末尾。
Bash 脚本 handle_order.sh
将维持 track_order
文本文件中的顺序
#!/bin/bash
echo "new file is added "
filename=$(basename )
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 ""' - {}
(./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 );echo $filename;if [ $filename != "track_order.txt" ]; then echo "${filename}" >> track_order.txt; else echo "order is updated";fi' - {}
我需要监控下载目录,并跟踪文件写入目录的顺序。我知道这在 macos 中可行的唯一方法是 fswatch
,但与 linux 上的 inotifywatch
相比,文档似乎相当稀疏。
例如,如果 001.jpg
然后 003.jpg
然后 002.jpg
下载到目录(按此顺序),我需要一个如下所示的变量:001.jpg 003.jpg 002.jpg
在这种情况下我只需要监控新文件,而不是修改过的文件。例如,如果修改了001.jpg
,则不应将其移至列表末尾。
Bash 脚本 handle_order.sh
将维持 track_order
文本文件中的顺序
#!/bin/bash
echo "new file is added "
filename=$(basename )
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 ""' - {}
(./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 );echo $filename;if [ $filename != "track_order.txt" ]; then echo "${filename}" >> track_order.txt; else echo "order is updated";fi' - {}