Làm thế nào để tìm tập tin không phải là một loại nhất định?


7

Tôi đang cố gắng tìm hiểu tất cả các loại tệp khác nhau trong thư mục nhạc chưa được sắp xếp của mình. Tôi đã thử lệnh này (để liệt kê các loại tệp bên cạnh các loại tôi biết có trong đó):

find zUnorganized/ -not -iname "*.mp3" -and -not -iname "*.flac" -and -not -iname "*.MP3" -and -not -iname "*.wav" -or -not -iname "*.m4a" -and -not -iname "*.jpg"

Nhưng nó không hoạt động. Làm thế nào tôi có thể làm cho lệnh đó làm việc? Có cách nào để làm điều đó bằng cách sử dụng -regex không?

Cảm ơn!


Vì tiêu đề yêu cầu rõ ràng về "loại tệp", không phải phần mở rộng tên tệp hay như vậy: Để tìm loại tệp dựa trên những gì thực sự có trong tệp , hãy sử dụng lệnh file.
Volker Siegel

Câu trả lời:


7

Bạn đã viết (dấu ngoặc đơn thừa được thêm cho rõ ràng):

find zUnorganized/ \( -not -iname "*.mp3" -and -not -iname "*.flac" -and -not -iname "*.MP3" -and -not -iname "*.wav" \) \
               -or \( -not -iname "*.m4a" -and -not -iname "*.jpg" \)

Hoặc sử dụng -and -notxuyên suốt, hoặc sử dụng orxuyên suốt và kết thúc với -print(có nghĩa là: không làm gì cho việc này, nếu không thì không làm gì cho việc đó, v.v., nếu không thì in). Bạn cũng sẽ muốn giới hạn tìm kiếm trong các tệp thông thường, nếu không các thư mục sẽ được liệt kê.

find zUnorganized/ -type f -not -iname "*.mp3" -and -not -iname "*.flac" -and -not -iname "*.MP3" -and -not -iname "*.wav" -and -not -iname "*.m4a" -and -not -iname "*.jpg"
find zUnorganized/ \! -type f -o \
                   -iname "*.mp3" -o -iname "*.flac" -o -iname "*.MP3" -o -iname "*.wav" -o -iname "*.m4a" -o -iname "*.jpg" -o \
                   -print

chỉ cần làm rõ cách thức lệnh thứ hai bạn viết, nó có nghĩa là tìm các tệp trong zUnorganized không phải là tệp hoặc có các loại này và không làm gì cả, nếu không thì in?

1
Nó đánh giá từ trái sang phải và đánh giá ngắn mạch có nghĩa là nó chỉ phiền khi đánh giá -print nếu tất cả các thử nghiệm trước đó là sai.
Cửu Long
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.