Như một câu trả lời khác chỉ ra, bạn có thể cố gắng tìm tất cả các thư mục có tên test
và xóa chúng
find -name "test" -type d -delete
Tôi gặp một số vấn đề với khả năng tương thích chéo trên Mac, vì vậy tôi đã sử dụng lệnh tương đương này:
find -path "*/test" -type d -delete
- -path : tìm kiếm một mẫu trong tên tệp đủ điều kiện.
Tuy nhiên, trong cả hai trường hợp, nếu bất kỳ thư mục nào có tên test
đều có tệp trong đó, find
sẽ phàn nàn rằng Directory is not empty
, và sẽ không xóa thư mục.
Nếu bạn định xóa tất cả các tệp bao gồm test
thư mục, thì chúng ta có thể sử dụng cùng một mẹo để xóa tất cả các tệp trong các thư mục có tên test
đầu tiên.
find -path "*/test/*" -delete
Mẫu : "*/test/*"
, sẽ đảm bảo chúng tôi chỉ xóa các tệp trong một thư mục có tên /test/
. Khi các thư mục trống, chúng ta có thể tiếp tục và xóa các thư mục bằng lệnh đầu tiên:
find -path "*/test" -type d -delete
Thí dụ:
$ tree
.
├── mytest
│ └── test
│ └── blah.txt
├── test
│ ├── bar.jpg
│ └── dir
│ └── bar.bak
└── testdir
└── baz.c
5 directories, 4 files
$ find -path "*/test" -type d -delete
$ tree
.
├── mytest
│ └── test
├── test
└── testdir
└── baz.c
4 directories, 1 file
$ find -name "test" -type d -delete
$ tree
.
├── mytest
└── testdir
└── baz.c
2 directories, 1 file
+
trong tìm kiếm. Tôi không biết, chắc chắn ước gì tôi đã biết từ lâu.