Chắc chắn, bạn có thể làm điều này với một tập lệnh Bash rất nhỏ.
Tôi giả định rằng bạn có danh sách đã chọn.txt
trong thư mục chính của bạn, trong đó Ảnh là thư mục con. Nếu đây không phải là trường hợp, vui lòng điều chỉnh các đường dẫn cho phù hợp.
Đầu tiên tạo thư mục để di chuyển các tập tin vào. Tôi cho rằng bạn vừa mở một thiết bị đầu cuối và bạn đang ở trong thư mục chính của mình. Bạn có thể di chuyển thư mục sau.
mkdir ChosenOnes
Bây giờ hãy kiểm tra xem bạn có thể tìm đúng tệp bằng danh sách của mình như thế này không:
trong khi đọc -r dòng; tìm Ảnh -name "$line" -ls; hoàn thành < đã chọn.txt
Nếu kết quả có vẻ chính xác, bạn có thể sao chép các tệp bằng cách điều chỉnh lệnh:
trong khi đọc -r dòng; tìm Ảnh -name "$line" -exec cp -vt ChosenOnes {} \; ; hoàn thành < đã chọn.txt
Chúng ta có thể làm cho nó trông đẹp hơn một chút:
#!/bin/bash
# đọc danh sách của chúng tôi và
trong khi đọc -r dòng; làm
# tìm các tệp trong đó và sao chép chúng vào thư mục mới
tìm Ảnh -name "$line" -exec cp -vt ChosenOnes {} \;
hoàn thành < đã chọn.txt
Giải trình
trong khi đọc -r dòng; Làm vài thứ; hoàn thành < tệp đầu vào
Một trong khi
vòng lặp tiếp tục làm điều gì đó miễn là điều kiện vẫn còn. Ở đây chúng tôi đang yêu cầu danh sách của chúng tôi được đọc từng dòng một. Mỗi dòng sẽ được đưa vào biến dòng
để chúng ta có thể chạy một số lệnh trên đó. Khi chúng tôi hoàn thành (các) lệnh của mình trên dòng đó, dòng tiếp theo sẽ được đọc cho đến khi chúng tôi hết dòng trong tệp của mình.
tìm tên đường dẫn "$line"
Các tìm thấy
lệnh thực hiện tìm kiếm đệ quy từ đường dẫn đã cho (Hình ảnh trong trường hợp của chúng tôi). Ở đây chúng tôi sử dụng -Tên
tùy chọn để tìm các tệp khớp với tên trong danh sách.
-ls
Các tìm thấy
lệnh có một tùy chọn để liệt kê các tệp được tìm thấy. Điều này hữu ích để kiểm tra những gì được tìm thấy trước khi thực hiện bất kỳ hành động nào
lệnh -exec {} \;
Các -exec
tùy chọn để tìm chạy lệnh đã cho trên các tệp đã được tìm thấy (được biểu thị bằng {}
)
cp -vt
Các -v
tùy chọn làm cho cp
cho chúng tôi biết nó đang làm gì. Các -t
tùy chọn chỉ định đích (chúng tôi cung cấp thư mục đích ngay sau nó); nếu không, đích sẽ được coi là đối số cuối cùng.