我对编写 Linux 脚本还很陌生,但我正在尝试做一些相当复杂的事情。我正在尝试编写一个程序,可以读取文件的部分文件名并将其放入同名文件夹中。例如,如果我将文件放入名为“PO 123.PDF”的目录中,它将自动进入“123”文件夹。据我所知,我可以使用 inotify-tools 来监视文件夹中的新文件,但我不确定如何使用语法。有人知道从哪里开始吗?谢谢!
答案1
和inotify-tools:
inotifywait -m . -e create |
while read path action file;
do
d="${file##* }"
d="${d%%.*}"
mkdir -p "$d"
mv "$file" "$d/" 2>/dev/null
done
从包含文件的目录中运行上述程序。
在bash
:
while true
do
for f in *
do
d="${f##* }"
d="${d%%.*}"
mkdir -p "$d"
echo mv "$f" "$d/" 2>/dev/null
done
sleep 5
done
将以上代码保存在文件中比你的文件目录高一级并使其可执行,然后从包含文件的目录中运行它,如下所示bash ../ScriptFileName
。消除 echo
当对结果满意时,进行实际的文件移动。
您可以将之后的秒数更改sleep
为sleep 5
例如sleep 60
使脚本每分钟运行一次而不是每 5 秒运行一次。
看这个答案了解更多信息。