Tôi có một thư mục "myfiles" lớn chứa đầy các tài liệu linh tinh và không muốn sửa đổi cấu trúc của nó.
Do đó tôi đã tạo (một số) thư mục khác cho mỗi loại tài liệu. Ví dụ: tôi có một thư mục "hình ảnh" có liên kết tượng trưng cho từng .jpg
hoặc .cr2
tệp trong thư mục "myfiles" cộng với các tệp mô tả khác cho mỗi liên kết tượng trưng (có cùng tên tệp) với mô tả và siêu dữ liệu khác. Các liên kết tượng trưng trong thư mục / hình ảnh có thể có một tên khác với tệp được liên kết ban đầu.
Tôi đang cố gắng tìm cách đơn giản nhất để đảm bảo mỗi tệp hình ảnh trong thư mục "myfiles" có một liên kết tượng trưng vào thư mục "hình ảnh".
Xem ví dụ về cấu trúc thư mục
/myfiles/a.doc
/myfiles/b.jpg
/myfiles/c.cr2
/myfiles/d.mov
nên kết quả
/images/b_800x600.jpg
/images/b_800x600.desc
/images/c_3820x5640.cr2
/images/c_3820x5640.cr2
ls -l
bạn có thể thấy số lượng liên kết cứng trong cột thứ hai.
rm
những thư mục symlink đó và sử dụng pax -rwl -s "\|.*regex|modifes_filename|" /path/to/myfiles/*.jpg /path/to/jpg_dir
ví dụ để lấy các liên kết cứng với tên tệp được thay đổi theo chương trình chỉ dành cho những tệp phù hợp với jpg của bạn. Bạn có thể nhận được nhiều hơn thế - từ việc tạo khối dựa trên thời gian thay đổi, v.v.
find /myfiles -type f
tệp vào một tệp sau đó sử dụngfind /images -type l -exec readlink {} \; | egrep myfiles
để lấy danh sách các tệp được/images
liên kếtsed
với nhau sau đó lặp lại các kết quả đang thực hiện trên từng tệp để xóa các đường dẫn trong tệp đầu tiên bạn lưu vì chúng đã lưu có các liên kết tượng trưng và các tệp còn lại là các tệp không có liên kết tượng trưng.