-3

Мой учитель дал мне домашнее задание по совмещению поиска и файла

Используйте find и file для отображения всех файлов в дереве подкаталога /home, а также для предположения, что это за файл.

Я пытался использовать конвейер, но это не сработало, как я думал. Любые идеи о том, как объединить обе команды? Спасибо! знак равно

3 ответа3

1

Вот подсказка. Вы используете команду file в качестве аргумента команды find . Ниже приведен вывод справки моей команды find . Взгляните на раздел "Actions", чтобы увидеть, как вы можете использовать команду 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 <bug-findutils@gnu.org>

,

0

Вы должны делать свою домашнюю работу, но в любом случае это ваша проблема ...

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

-type указывает результат (f для файла)-exec выполняет программу {} Имя файла

0

Лучшее и более эффективное решение:

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

Вышеуказанная реализация предполагает более позднюю версию find и реализацию Linux. -print0 учитывает те случаи, когда специальные зарезервированные символы содержатся в имени файла ... вы знаете, как пробелы!

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .