2010-08-13 33 views
5

Osx mv và cp không có tùy chọn --parents, vậy làm thế nào để mô phỏng nó?Cách mô phỏng cp và mv - transparent trên osx

I.e. mv x/y/a.txt s/x/y/a.txt khi s trống rỗng, cho phép không tìm thấy thư mục nào trừ khi có một mkdir đầu tiên khá cồng kềnh khi cố gắng thực hiện điều này đã làm hàng ngàn tệp.

+0

Bạn đã thử 'cp -R' chưa? Hay bạn không muốn toàn bộ cấu trúc? – whiskeysierra

+0

Không, chỉ là một phần của nó. –

Trả lời

4

Các giải pháp (trong đó hoạt động trên tất cả các nền tảng có một rsync) là:

Sử dụng tìm hoặc một số công cụ khác để tạo ra một tập tin với các tập tin bạn muốn di chuyển/sao chép, tức là

find *.mp3 > files.txt 

sau đó sử dụng file-từ rsync để xác định nó và bằng cách sử dụng --remove-source-file nó hoạt động như một -p mv và không có nó hoạt động như cp -p:

rsync --files-from=files.txt --remove-source-files src dest 

chậm hơn so với một mv mẹ đẻ/cp nhưng resumabl của nó e và rsync có rất nhiều tùy chọn khác có thể giúp bạn dọn dẹp các tệp của mình.

+0

Cuộc gọi tốt. Ngoài ra, bạn có thể cài đặt phiên bản MacPorts của các tiện ích dòng lệnh, nhưng điều này rất có thể sẽ phá vỡ nhiều thứ nếu bạn thay thế các utils mặc định hoàn toàn thông qua PATH, EXPORT, ALIAS hoặc symlink. – DevNull

+0

Giải pháp tốt, nhưng có thể yêu cầu bước bổ sung di chuyển tệp đầu ra (sao chép). Ví dụ, tôi đang cố di chuyển tất cả các tập tin âm thanh wav từ '/ Volumes/Music .../iTunes/...' (đĩa ngoài) sang '~/Music/iTunes/...' (đĩa trong). .. Tôi đã kết thúc với cây phụ phụ của '/ Volumes/Music .../iTunes/...' * bên trong * thư mục đầu ra, nhưng điều này là dễ dàng để giải quyết bằng cách di chuyển các tập tin về. – user3728501