小编Su_*_*bee的帖子

如何查找和删除同一目录中的重复文件?

我想在一个目录中找到重复的文件,然后删除除一个之外的所有文件,以回收空间。如何使用 shell 脚本实现这一点?

例如:

pwd
folder
Run Code Online (Sandbox Code Playgroud)

里面的文件是:

log.bkp
log
extract.bkp
extract
Run Code Online (Sandbox Code Playgroud)

我需要将 log.bkp 与所有其他文件进行比较,如果发现重复文件(通过其内容),我需要将其删除。同样,文件“log”必须与所有其他文件一起检查,以此类推。

到目前为止,我已经写了这个,但它没有给出预期的结果。

#!/usr/bin/env ksh
count=`ls -ltrh /folder | grep '^-'|wc -l`
for i in `/folder/*`
do
   for (( j=i+1; j<=count; j++ ))
   do
      echo "Current two files are $i and $j"
      sdiff -s $i  $j
      if [ `echo $?` -eq  0 ]
      then
         echo "Contents of $i and $j are same"
       fi
    done
 done
Run Code Online (Sandbox Code Playgroud)

duplicate find shell-script files

7
推荐指数
3
解决办法
2万
查看次数

如何使用shell脚本测试文件权限?

我正在通过以 root 身份运行此脚本来测试我的文件是否具有读取权限:

#!/usr/bin/env bash

FILE="/etc/shadow"

if ! [ -r $FILE ]; then
  echo "Hello"
fi

exit 0
Run Code Online (Sandbox Code Playgroud)

理想情况下,脚本必须打印,Hello因为没有读取权限。但是,这并没有发生。

ls -ltrh /etc/shadow
---------- 1 root root 7.1K Jun  7 06:59 /etc/shadow
Run Code Online (Sandbox Code Playgroud)

脚本中需要修改什么?

bash permissions test

6
推荐指数
1
解决办法
2万
查看次数

标签 统计

bash ×1

duplicate ×1

files ×1

find ×1

permissions ×1

shell-script ×1

test ×1