조회에 실제 파일 시스템만 포함하는 더 좋은 방법은 무엇입니까?

조회에 실제 파일 시스템만 포함하는 더 좋은 방법은 무엇입니까?

이는 마운트 지점이 다른 시스템(적어도 Ubuntu 18.04 및 RHEL 8.3) 간에 작동하고 보편적이지만 더 좋은 방법이 있습니까?

("Permission Denied"를 찾아서 pg_ctl제외시키려는 것은 무시하세요. find그게 제가 묻는 것입니다.)

$ realfs=$(df -x tmpfs -x devtmpfs | tail -n +2 | awk '{print $6;}' | xargs)
$ echo $realfs
/ /boot/efi /Database/12 /Database/12/backups
$ find ${realfs} -xdev -type f -name pg_ctl |& grep -v "Permission denied"  
/usr/bin/pg_ctl
/usr/lib64/pgsql/postgresql-10/bin/pg_ctl

내가 이 방법을 개발한 이유는 이 방법이 다른 마운트 지점을 가진 시스템 전체에 걸쳐 보편적이어야 할 뿐만 아니라 -prune혼란스럽기 때문입니다.

답변1

Linux에서 지원되는 파일 시스템은 /proc/filesystems다음 목록에 나열되어 있습니다.아니요nodev물리적 로컬 파일 시스템은 .there 로 표시됩니다 .

fs=($(grep -v '^nodev' /proc/filesystems))

관심 있는 유형의 배열이 주어지면 find이를 s와 함께 사용할 수 있습니다 -fstype.

findfs=($(echo ${fs[*]/#/ -o -fstype }))
find / \( -false ${findfs[*]} \)

이렇게 하면 파일 시스템 세트의 하드코딩을 방지할 수 있습니다.들어오지 못하게 하다시간을 앞당기세요. 여기에는 몇 가지 단점이 있습니다. 특히 일부 상황에서 문제가 될 수 있는 네트워크 파일 시스템을 제외합니다.

관련 정보