BusyBox 1.4.2에서 특정 문자열을 포함하는 모든 파일을 재귀적으로 찾는 방법은 무엇입니까?

BusyBox 1.4.2에서 특정 문자열을 포함하는 모든 파일을 재귀적으로 찾는 방법은 무엇입니까?

BusyBox v1.4.2의 디렉터리 및 모든 하위 디렉터리에서 특정 문자열을 포함하는 모든 파일을 찾는 방법은 무엇입니까? "AA:CC:DD:00:EE:55" 또는 "AACCDD00EE55" 문자열을 찾아야 합니다.

BusyBox v1.4.2 (2012-06-01 11:17:34 CST) Built-in shell (ash)
Enter 'help' for a list of built-in commands.

Built-in commands:
-------------------
        . : [ [[ bg break cd chdir continue echo eval exec exit export
        false fg getopts hash help jobs kill local pwd read readonly
        return set shift source test times trap true type ulimit umask
        unset wait


# busybox --help
BusyBox v1.4.2 (2012-06-01 11:17:34 CST) multi-call binary

Usage: busybox [function] [arguments]...
   or: [function] [arguments]...

Currently defined functions:
        [, [[, adduser, ash, awk, cat, chmod, chroot, cp, cut,
        date, dd, deluser, dmesg, echo, false, free, getopt, grep,
        halt, hexdump, hostname, htxsnmptelnet, ifconfig, init,
        insmod, kill, killall, ln, login, ls, lsmod, mkdir, mknod,
        mount, mv, netstat, passwd, ping, ping6, poweroff, ps,
        pwd, reboot, renice, rm, rmmod, route, sh, sleep, tar,
        test, tftp, top, umount, wget

답변1

grep재귀 플래그가 있으며 -rflags를 사용하여 여러 검색 패턴을 지정할 수 있습니다 -e. 그리고 형식으로 보면 맥 주소를 찾는 것 같으니 대문자일 수도 있고 소문자일 수도 있습니다.

당신이 할 수 있다는 걸 알아요

grep -ir -e "AA:CC:DD:00:EE:55" -e "AACCDD00EE55" /directory

sudo파일/폴더(예: 폴더)에 대한 읽기 권한이 없는 경우 이를 지정해야 합니다 /etc.

예를 들어,

xieerqi:$ grep -iR "string" /etc/cups                                                                              
grep: /etc/cups/subscriptions.conf: Permission denied
grep: /etc/cups/classes.conf: Permission denied
grep: /etc/cups/printers.conf.O: Permission denied
grep: /etc/cups/subscriptions.conf.O: Permission denied
grep: /etc/cups/ssl: Permission denied
grep: /etc/cups/printers.conf: Permission denied

/etc/cups이는 디렉터리 자체뿐만 아니라 디렉터리 의 모든 항목에 대한 권한이 루트 사용자에 대해서만 읽고 쓰기이고 lp그룹에 대해서는 읽기이기 때문에 발생합니다. 다른 사용자의 경우 - 읽기 권한이 없습니다. 예를 들어,

-rw-r----- 1 root lp     92 11月  6 09:15 subscriptions.conf

그렇기 때문에 sudo 액세스가 필요합니다.

또한 항목을 읽을 수 없다고 불평할 수 있으므로 리디렉션을 grep지정해야 할 수도 있습니다.2> /dev/null

예를 들어 /etc/blkid.tab실제 파일이 아닌 심볼릭 링크이기 때문에 다음과 같은 오류가 발생합니다.

xieerqi:$ sudo grep -iR "b4:82:fe:d3:85:56" /etc                                                                  
[sudo] password for xieerqi: 
grep: /etc/blkid.tab: No such file or directory

출력에서 오류를 사라지게 하려면 다음을 수행합니다. 이는 기본적으로 모든 출력에 대한 블랙홀인 sudo grep -iR "b4:82:fe:d3:85:56" 2> /dev/null오류 스트림을 장치로 리디렉션합니다./dev/null

관련 정보