您好我正在查看目录中的文件正在改变,我想要获取每个文件的md5sum并将其写入文本文件。然后,我知道一个文件已经改变,我想再次运行它,所以我可以区分输出文件,看看究竟发生了什么变化。这是我尝试过的,但它不起作用,因为我需要。Bash得到一个文件夹中的所有文件的md5sum
而且不仅我需要让每一个文件的md5sum文件夹中包含子目录我需要它不跟随符号连接
#!/bin/bash
#
cd /sys/class
for i in $(find . -type f)
do
ls -lt "$i" >> /home/george/Desktop/before.txt
done
echo "Finished!"
感谢您的帮助
===编辑===
我把我的实际路径,因为我真的不需要隐藏它们。无论如何,运行这个只返回几个文件(输出文件在下面),这是文件夹中的文件,这意味着它不会进入子目录并找到这些文件。顺便说一句对不起我的是bash的方式生锈
--w------- 1 root root 4096 Jun 20 03:03 ./gpio/export
--w------- 1 root root 4096 Jun 20 03:03 ./gpio/unexport
-rw-r--r-- 1 root root 4096 Jun 20 03:03 ./firmware/timeout
-r--r--r-- 1 root root 4096 Jun 20 03:04 ./drm/version
=== EDIT2 ===
也不清楚为什么某些文件不被发现,例如 /SYS /班/背光/ intel_backlight /亮度
和很多人一样,但是也有一些不被人发现由于某些原因
只要将-type d改为-type f?我不认为默认情况下符号链接,所以你会没事的。你的for循环将不会使用文件名中的空格,你最好使用另一种方法 - 在这里讨论http://stackoverflow.com/questions/7039130/bash-iterate-over-list-of-files-with-空格 – Adam
我想检查最新修改日期不是一个选项,对吧?这将是更快,更简单,但当然,几乎不像安全 – Miquel
我会尝试f感谢亚当和米克尔,我想这可以工作太多,至少我认为这是有道理的,我知道MD5是缓慢的,有很多文件 – user577732