创建 bash 脚本以自动将文件放入同名文件夹中?

创建 bash 脚本以自动将文件放入同名文件夹中?

我对编写 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当对结果满意时,进行实际的文件移动。

您可以将之后的秒数更改sleepsleep 5例如sleep 60使脚本每分钟运行一次而不是每 5 秒运行一次。

这个答案了解更多信息。

相关内容