![조회에 실제 파일 시스템만 포함하는 더 좋은 방법은 무엇입니까?](https://linux55.com/image/184664/%EC%A1%B0%ED%9A%8C%EC%97%90%20%EC%8B%A4%EC%A0%9C%20%ED%8C%8C%EC%9D%BC%20%EC%8B%9C%EC%8A%A4%ED%85%9C%EB%A7%8C%20%ED%8F%AC%ED%95%A8%ED%95%98%EB%8A%94%20%EB%8D%94%20%EC%A2%8B%EC%9D%80%20%EB%B0%A9%EB%B2%95%EC%9D%80%20%EB%AC%B4%EC%97%87%EC%9E%85%EB%8B%88%EA%B9%8C%3F.png)
이는 마운트 지점이 다른 시스템(적어도 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[*]} \)
이렇게 하면 파일 시스템 세트의 하드코딩을 방지할 수 있습니다.들어오지 못하게 하다시간을 앞당기세요. 여기에는 몇 가지 단점이 있습니다. 특히 일부 상황에서 문제가 될 수 있는 네트워크 파일 시스템을 제외합니다.