Không thể sao chép các tệp có dấu vào Mac OS


1

Tôi có máy chủ đang chia sẻ tập tin thông qua SMB. Máy chủ đang sử dụng Ext4 để lưu trữ tệp.

Hôm nay tôi đã cố gắng sao chép tệp sau từ máy chủ sang Mac OS:

1-10 Bizet_ Carmen - Habañera.wav

Lần đầu tiên nó sao chép nhưng tôi không thể nhìn thấy tập tin. Lần thứ hai tôi đã sao chép vào cùng một nơi và nhận được mã lỗi -8058. Sau khi đào bới, tôi thấy rằng vì một số lý do, tập tin cụ thể này được sao chép dưới dạng liên kết theo cách sau:

file-//localhost/Volumes/torrents-tmp/downloads/1-10%20Bizet_%20Carmen%20-%20Haban%CC%83era.wav.webloc

Từ trong 100 tệp, khoảng 10% tệp có cùng một vấn đề. Tôi thậm chí không thể đổi tên nó từ Mac OS. Nếu tôi đổi tên đến n từ máy chủ, sau đó tôi có thể sao chép nó.

Một ví dụ khác về tập tin đó là:

10 Celebración.wav

Vì vậy, có vẻ như các dấu Mac đang gây nhầm lẫn, nhưng tôi nghĩ chúng là một phần của Unicode.

Là giải pháp để có thể sao chép nó, làm cách nào tôi có thể tự động đổi tên hàng loạt tất cả các tệp không hợp lệ?


Làm thế nào bạn sao chép các tập tin? Trình tìm kiếm? Dòng lệnh?
terdon

được xây dựng trong Finder, Path Finder, Disk Order .. cùng một kết quả.
Pablo

Bạn đã thử từ dòng lệnh?
terdon

Vâng. cp: 1-10 Bizet_ Carmen - Habañera.wav: No such file or directory
Pablo

Đó có phải là dấu ngoặc kép? cp "1-10 Bizet_ Carmen - Habañera.wav" /path/to. Ngoài ra, hãy đảm bảo rằng cả máy chủ và máy khách đang sử dụng UTF8
terdon

Câu trả lời:


1

Chạy này trên máy chủ để đổi tên các tập tin. Nó sẽ thay thế tất cả các ký tự không phải ascii bằng ascii tương đương:

find . -type f  | 
 perl -nCAS -MText::Unidecode -e 'chomp; rename "$_", unidecode("$_");'

Can't locate Text/Unidecode.pm in @INC (@INC contains: /etc/perl /usr/local/lib/perl/5.10.1 /usr/local/share/perl/5.10.1 /usr/lib/perl5 /usr/share/perl5 /usr/lib/perl/5.10 /usr/share/perl/5.10 /usr/local/lib/site_perl .). BEGIN failed--compilation aborted.
Pablo

@Pablo chết tiệt. Bạn sẽ phải cài đặt Text::Unidecode mô-đun. Xem đây đây để được hướng dẫn.
terdon

Vâng, có vẻ như nó hoạt động. Tôi sẽ kiểm tra một chút và lấy lại. Mô-đun cài đặt với sudo apt-get install libtext-unidecode-perl trên Ubuntu.
Pablo
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.