find 查詢某個目錄,但是不包括這個目錄本身?
阿新 • • 發佈:2022-11-29
問題描述:
想要查詢某個目錄下的內容,但是發現:
[root@nctest-snap-test-02 mysql]# find /data/backup/mysql/ /data/backup/mysql/ # 包含目錄本身 /data/backup/mysql/01 /data/backup/mysql/02 /data/backup/mysql/03 [root@nctest-snap-test-02 mysql]#
就會包含目錄本身!如果要對目錄的時間進行匹配、刪除,就可能將目錄本身給刪除。
問題解決:
所以,大概有2種解決方法。
方法1:使用 *
[root@nctest-snap-test-02 mysql]# find /data/backup/mysql/* /data/backup/mysql/01 /data/backup/mysql/02 /data/backup/mysql/03 [root@nctest-snap-test-02 mysql]#
這樣,也不包括目錄本身,但是,也存在一個問題,當目錄是空的時候會報錯
[root@nctest-snap-test-02 mysql]# find /data/backup/mysql/* find: ‘/data/backup/mysql/*’: 沒有那個檔案或目錄 [root@nctest-snap-test-02 mysql]#
再看方法2:
使用 ! -path ,去除某些目錄
[root@nctest-snap-test-02 mysql]# find /data/backup/mysql/ ! -path /data/backup/mysql/ /data/backup/mysql/01 /data/backup/mysql/02 /data/backup/mysql/03 [root@nctest-snap-test-02 mysql]#
如果目錄是空的,也不會報錯
[root@nctest-snap-test-02 mysql]# find /data/backup/mysql/ ! -path /data/backup/mysql/ [root@nctest-snap-test-02 mysql]#
建議第2種解決方法。