bash – 在目录层次结构中查找并删除重复的文件名
发布时间:2020-12-15 18:31:40 所属栏目:安全 来源:网络整理
导读:#!/bin/shLASTBASE="" find $1 -type f -print | rev | sort | rev | while read FILEdo BASE=$(basename "$FILE") if [ "$BASE" = "$LASTBASE" ]; then rm "$FILE" LASTBASE="$BASE"done 如果将find的输出传输到while循环中,则可以逐行处理它们: find nnn/
#!/bin/sh LASTBASE="" find $1 -type f -print | rev | sort | rev | while read FILE do BASE=$(basename "$FILE") if [ "$BASE" = "$LASTBASE" ]; then rm "$FILE" LASTBASE="$BASE" done
如果将find的输出传输到while循环中,则可以逐行处理它们:
find nnn/ -type f -print | rev | sort | rev | while read FILE; do ... done 编辑:因此,如果文件名包含双(连续)空格,则此方法会中断,因为read实际上根据$IFS将行拆分,然后在存储最后一个变量时再次连接它.要解决此问题,您可以暂时更改$IFS以禁用拆分: OIFS="$IFS" IFS="" find | while read... IFS="$OIFS" 编辑:test(与[相同]没有==运算符,你只需要=. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |