如何组合查找和文件命令?

如何组合查找和文件命令?

我的老师给我布置了一项关于结合 find 和 file 的作业

使用 find 和 file 显示 /home 子目录树中的所有文件,以及猜测它们是什么类型的文件。

我尝试使用管道,但效果不如我想象的那样。关于如何结合这两个命令,您有什么想法吗?谢谢!=)

答案1

这里有个提示。您可以使用该file命令作为该命令的参数find。下面是我的命令帮助的输出find。查看“操作”部分,了解如何将该file命令与该find命令一起使用。

Usage: find [-H] [-L] [-P] [-Olevel] [-D help|tree|search|stat|rates|opt|exec] [path...] [expression]

default path is the current directory; default expression is -print
expression may consist of: operators, options, tests, and actions:

operators (decreasing precedence; -and is implicit where no others are given):
      ( EXPR )   ! EXPR   -not EXPR   EXPR1 -a EXPR2   EXPR1 -and EXPR2
      EXPR1 -o EXPR2   EXPR1 -or EXPR2   EXPR1 , EXPR2

positional options (always true): -daystart -follow -regextype

normal options (always true, specified before other expressions):
      -depth --help -maxdepth LEVELS -mindepth LEVELS -mount -noleaf
      --version -xdev -ignore_readdir_race -noignore_readdir_race

tests (N can be +N or -N or N): -amin N -anewer FILE -atime N -cmin N
      -cnewer FILE -ctime N -empty -false -fstype TYPE -gid N -group NAME
      -ilname PATTERN -iname PATTERN -inum N -iwholename PATTERN -iregex PATTERN
      -links N -lname PATTERN -mmin N -mtime N -name PATTERN -newer FILE
      -nouser -nogroup -path PATTERN -perm [+-]MODE -regex PATTERN
      -readable -writable -executable
      -wholename PATTERN -size N[bcwkMG] -true -type [bcdpflsD] -uid N
      -used N -user NAME -xtype [bcdpfls]

actions: -delete -print0 -printf FORMAT -fprintf FILE FORMAT -print
      -fprint0 FILE -fprint FILE -ls -fls FILE -prune -quit
      -exec COMMAND ; -exec COMMAND {} + -ok COMMAND ;
      -execdir COMMAND ; -execdir COMMAND {} + -okdir COMMAND ;

Report (and track progress on fixing) bugs via the findutils bug-reporting
page at http://savannah.gnu.org/ or, if you have no web access, by sending
email to <[email protected]>

答案2

你应该做你的作业但无论如何你的问题是......

find /home -type f -exec file {} \;

-type 指定结果(f 代表文件) -exec 执行程序 {} 是文件的名称

答案3

更好更有效的解决方案:

 find /home -type f -print0 | xargs -0 file

上述实现假定了 find 的更高版本和 Linux 实现。-print0 允许文件名中包含特殊保留字符的情况...例如空格!

相关内容