我需要监视下载目录,并跟踪文件写入目录的顺序。我知道这在 macos 中可行的唯一方法是,但与linuxfswatch
相比,文档似乎相当稀疏。inotifywatch
例如,如果001.jpg
then 003.jpg
then002.jpg
被下载到目录(按该顺序),我需要一个看起来像这样的变量:001.jpg 003.jpg 002.jpg
在这种情况下,我只需要监视新文件,而不是修改过的文件。例如,如果001.jpg
已修改,则不应将其移至列表末尾。
我需要监视下载目录,并跟踪文件写入目录的顺序。我知道这在 macos 中可行的唯一方法是,但与linuxfswatch
相比,文档似乎相当稀疏。inotifywatch
例如,如果001.jpg
then 003.jpg
then002.jpg
被下载到目录(按该顺序),我需要一个看起来像这样的变量:001.jpg 003.jpg 002.jpg
在这种情况下,我只需要监视新文件,而不是修改过的文件。例如,如果001.jpg
已修改,则不应将其移至列表末尾。
将在文本文件handle_order.sh
中保持顺序的Bash 脚本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)
将处理订单并更新 track_order.txt 文件的 bash 脚本(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' - {}