Thông thường, bạn sẽ chỉ muốn mở Shotwell và kéo vào thư mục.
Nếu bạn cần, bạn có thể tạo shell xây dựng danh sách các tệp CR2 và yêu cầu Shotwell chỉ mở các tệp đó. Đôi khi, đó có thể là những gì bạn muốn, nhưng trong trường hợp này không thực hiện đúng những gì bạn cần do hành vi của Shotwell - trong một số trường hợp khác, một tính năng - tự động hiển thị cho bạn các tệp hình ảnh khác (thuộc tất cả các loại) cư trú trong cùng thư mục với hình ảnh bạn đã mở.
Để đảm bảo Shotwell chỉ biết về những hình ảnh bạn quan tâm, bạn có thể sao chép cây thư mục ở một nơi khác, chỉ sao chép .cr2
các tệp và các thư mục chứa chúng, nhưng không có gì khác. Điều đó có thể chiếm không gian bổ sung đáng kể, mặc dù. Vì vậy, một cách tiếp cận khác là xây dựng một hệ thống phân cấp các liên kết tượng trưng - trong đó thay vì có một cây thư mục mới của các bản sao của các .cr2
tệp gốc của bạn , bạn có một cây thư mục mới của các syminks cho chúng. Điều này chiếm không gian ít hơn nhiều.
Câu trả lời này bao gồm tất cả những cách tiếp cận.
Mở Thư mục hình ảnh (Bao gồm các thư mục con) trong Shotwell
Shotwell tự cung cấp cho bạn hai cách để mở toàn bộ thư mục ảnh. Nếu những điều này sẽ làm việc cho bạn, thì bạn sẽ không cần phải làm bất cứ điều gì thông minh trong dòng lệnh hoặc thậm chí sử dụng nó cả. Nếu không, bạn có thể sẽ làm điều này liên quan đến một kỹ thuật khác. (Ví dụ: nếu bạn kết thúc việc tạo một thư mục mới của các liên kết tượng trưng hoặc bản sao của các .cr2
tệp của mình , bạn có thể sử dụng một trong những cách sau để mở nó.)
Cách 1: Chỉ cần mở toàn bộ thư mục trong Shotwell.
Trong Shotwell, trong menu Tệp , bấm Nhập từ Thư mục . Sau đó chọn thư mục bạn muốn nhập hình ảnh từ đó. Điều này sẽ không bị giới hạn đối với .cr2
các tệp, nhưng nếu bạn đang mở các tệp từ nhiều thư mục con chứa .cr2
hình ảnh được tạo từ máy ảnh kỹ thuật số, thì rất có thể đó sẽ là các tệp duy nhất hiện diện.
Xem câu trả lời của Jakob để hiển thị tất cả các hình ảnh theo cách đệ quy (bao gồm mọi thư mục con) để biết thêm thông tin.
Cách 2: Kéo thư mục vào Shotwell.
Với hầu hết các môi trường máy tính để bàn và trình duyệt tệp, bạn cũng có thể mở Shotwell và kéo thư mục chứa hình ảnh của bạn vào cửa sổ Shotwell. Giống như Nhập từ Thư mục , đây là một cách khác mà Shotwell khuyên bạn nên mở ảnh.
Khi bạn kéo từ cửa sổ trình duyệt tệp hoặc máy tính để bàn của bạn vào Shotwell, bạn có thể kéo đến một thư viện cụ thể. Hoặc nếu bạn không có nhiều thư viện được thiết lập, bạn có thể kéo về cơ bản bất cứ nơi nào và nó hoạt động. (Bạn thậm chí không phải kéo vào khung bên trái.)
Phương pháp này rất thuận tiện và mạnh mẽ như chọn thư mục theo cách thủ công (với Tệp > Nhập từ Thư mục , như được mô tả ở trên). Khi bạn mở tệp hoặc thư mục bằng một trong hai phương pháp này , Shotwell cung cấp cho bạn tùy chọn để mở ảnh mà không cần sao chép chúng vào thư viện của nó.
Để nhập mà không sao chép, nhấp vào Nhập tại chỗ thay vì Sao chép ảnh .
Ra mắt Shotwell với một danh sách tên tập tin hình ảnh
Nếu vì lý do nào đó bạn muốn hoặc cần phải làm điều này bằng cách chạy một lệnh trong Terminal, bạn có thể chạy shotwell
lệnh và chuyển tên tệp của mỗi hình ảnh cho nó làm đối số. Globstar làm cho nó dễ dàng:
shopt -s globstar
shotwell **/*.cr2
Điều đó sẽ mở các .cr2
tập tin nằm ở bất cứ đâu trong thư mục hiện tại. Nó khác với việc chạy Shotwell và sau đó kéo thư mục vào, trong đó Shotwell sẽ chỉ cố gắng nhập các tệp có tên bạn đặt cho nó. Tuy nhiên, vì Shotwell thường hiển thị các tệp hình ảnh khác từ cùng thư mục với các tệp bạn đã bảo nó mở, nên điều này có thể không phù hợp với nhu cầu của bạn. (Và thêm thông tin bạn đã cung cấp về vấn đề của bạn cho thấy rằng không phải như vậy . Xem bên dưới để biết cách thay thế.)
Điều này không bao gồm các tệp hoặc thư mục con có tên bắt đầu bằng.
. Tuy nhiên, nếu bạn có các tệp CR2 có tên bắt đầu bằng dấu chấm, thì hầu hết thời gian bạn có thể không muốn mở chúng trong Shotwell. Trừ khi bạn cố tình đặt tên cho các tệp hoặc thư mục của mình theo cách này, một dotfile có phần mở rộng tên tệp hình ảnh hoặc tài liệu có nhiều khả năng là tệp siêu dữ liệu hơn là hình ảnh hoặc tài liệu thực tế. Ví dụ: macOS thường thêm các tệp như vậy (ví dụ: ._kittens.cr2
đối với ảnh thực tế kittens.cr2
) khi truy cập phương tiện bên ngoài (bao gồm ổ đĩa flash và máy ảnh kỹ thuật số).
Nếu bạn cũng muốn tìm các tệp có tên bắt đầu bằng .
hoặc nằm trong các thư mục có tên bắt đầu.
, thì cũng bật dotglob. Bạn có thể làm điều này với shopt -s dotglob
hoặc bằng cách chuyển cả hai globstar
và dotglob
vào phần shopt
dựng sẵn:
shopt -s globstar dotglob
Theo mặc định, globs là trường hợp nhạy cảm. Nhưng bạn có thể muốn để phù hợp với tên tập tin trường insensitively , để mở các tập tin kết thúc bằng .cr2
, .Cr2
, .cR2
, và .CR2
. Để làm điều đó, một trong hai:
Kích hoạt nocaseglob bằng cách chạy shopt -s
với nocaseglob
chính nó hoặc với các tùy chọn shell khác. Ví dụ: để chạy shotwell
trên tất cả .cr2
các tệp, tìm kiếm không phân biệt chữ hoa chữ thường và bao gồm .
-files và tệp trong .
-directories:
shopt -s globstar dotglob nocaseglob
shotwell **/*.cr2
Hoặc , sử dụng .[cC][rR]2
thay vì .cr2
trong mô hình toàn cầu của chính bạn. Ví dụ, điều này thực hiện tương tự như trên:
shopt -s globstar dotglob
shotwell **/*.[cC][rR]2
Lưu ý rằng độ nhạy trường hợp hoàn toàn tách biệt với việc .
tệp và thư mục có khớp hay không . Bạn có thể xóa dotglob
khỏi các ví dụ trên và chúng vẫn có thể không phân biệt chữ hoa chữ thường.
Để chỉ định một thư mục thay vì chỉ sử dụng thư mục hiện tại, hãy đặt tên và a /
trước toàn **/*.cr2
cầu. Ví dụ, thay thế shotwell
lệnh trên bằng lệnh này sẽ mở tất cả các .cr2
tệp bên trong Pictures
thư mục con của thư mục chính của bạn:
shotwell ~/Pictures/**/*.cr2
Không giống như lệnh đầu tiên sử dụng thư mục hiện tại của bạn, bất kể bạn chạy lệnh đó ở đâu, bạn sẽ bảo Shotwell mở cùng các tệp.
Kiểm tra
Nếu bạn thực sự phải sử dụng thiết bị đầu cuối cho việc này, thì tôi đoán nó có thể là một phần của một cái gì đó phức tạp hơn. Nếu bạn thích, bạn có thể kiểm tra các lệnh như vậy trước khi thực sự chạy chúng bằng cách thay thế shotwell
bằng printf '%s\n'
. Thay vì chuyển tên tệp cho Shotwell, nó liệt kê chúng một dòng trên mỗi dòng. Ví dụ: trên máy của tôi:
ek@Io:~$ printf '%s\n' ~/tmp/**/*.cr2
/home/ek/tmp/another image.cr2
/home/ek/tmp/image.cr2
/home/ek/tmp/some folder/image3.cr2
Tắt Globstar và các tùy chọn Shell khác
Tùy chọn shell globalstar đã được kích hoạt để hoạt động, đó là những gì shopt -s globstar
lệnh (ở trên) đã làm. Nếu nó đã được kích hoạt, thì bạn không cần nhiều lệnh. Và bạn chỉ cần thiết lập globalstar một lần cho mỗi phiên bản shell.
Bạn có thể tắt globalstar trở lại bằng cách chạy:
shopt -u globstar
Và bạn có thể kiểm tra xem Glostar đang bật hay tắt bằng cách chạy:
shopt globstar
Nếu bạn đang sử dụng globalstar trong một tập lệnh, bạn nên xem xét tắt nó đi nếu có thể có mã xuất hiện sau đó trong cùng một tập lệnh không được viết với Glostar. Ví dụ, viết **
khi bạn muốn nói *
là thường không có vấn đề gì khi Glostar bị vô hiệu hóa, nhưng khi bật globalstar, nó có thể gây ra vấn đề nghiêm trọng bằng cách tạo một lệnh ảnh hưởng đến nhiều tệp hơn nhiều so với dự định của ai đó.
Tương tự, nếu bạn đã sử dụng dotglob hoặc nocaseglob và bạn cũng muốn tắt chúng đi, bạn có thể làm như vậy với shopt -u dotglob
và shopt -u nocaseglob
, tương ứng. Bạn cũng có thể chuyển nhiều tùy chọn shell shopt -u
để hủy đặt chúng cùng một lúc. Ví dụ: để tắt globstar,
dotglob
và nocaseglob
:
shopt -u globstar dotglob nocaseglob
So với globalstar, bạn có thể mắc ít lỗi nghiêm trọng hơn do bạn quên bạn để lại dotglob hoặc nocaseglob. Nhưng những người khác (bao gồm cả những người bạn tham khảo trên các trang web như Ask Ubuntu) thường cho rằng dotglob và nocaseglob bị vô hiệu hóa khi họ đề xuất các lệnh cho bạn sử dụng, trừ khi bạn nói với họ cách khác.
Để biết thêm thông tin về các tùy chọn vỏ liên quan đến toàn cầu này (và cả về các khối u nói chung ), hãy xem hướng dẫn tham khảo bash . Tất cả đều được bảo hiểm chủ yếu trong 4.3.2 Shopt Buildin . Đối với sao, xem thêm 3.5.8.1 Ghép mẫu . Đối với dotglob, xem thêm Mở rộng tên tệp 3.5.8 .
Xây dựng cây thư mục mới
Vì trong trường hợp của bạn, bạn dường như thực sự cần Shotwell chỉ hiển thị .cr2
các tệp, bạn không có .cr2
tệp trong cùng thư mục với .cr2
tệp và trình duyệt hình ảnh trong Shotwell cũng tự động cung cấp các tệp đó , có vẻ như bạn sẽ cần phải có thư mục không chứa các tệp hình ảnh nào khác ngoài các .cr2
tệp bạn đang cố mở.
Di chuyển các tệp, như bạn đã đề xuất , là một cách tiếp cận, nhưng tôi khuyên bạn nên thay thế sao chép các tệp hoặc tốt hơn là tạo các liên kết tượng trưng đến các tệp (xem thêm FOLDOC ), bởi vì:
- Nếu bạn đang di chuyển các tệp trên các thiết bị, điều đó đòi hỏi phải sao chép, vì vậy trong trường hợp đó, việc di chuyển sẽ không nhanh hơn.
- Nếu bạn có không gian, việc giữ một thư mục chưa sửa đổi của tất cả mọi thứ bạn đã bắt đầu cho đến khi bạn hài lòng rằng những gì bạn đã làm là đúng theo nhu cầu của bạn. Rõ ràng điều này không phải lúc nào cũng có thể áp dụng hoặc thực tế. Nhưng trong trường hợp của bạn, các tệp này là kết quả của hoạt động khôi phục dữ liệu. Nó có thể hữu ích để giữ một bản ghi dễ dàng sử dụng chính xác những gì đã được phục hồi và từ đâu.
- Nếu bạn chọn tạo các liên kết tượng trưng, lượng không gian bổ sung được tiêu thụ là vô cùng nhỏ . (Tuy nhiên, nếu đĩa đích hoàn toàn đầy đủ , thì bạn vẫn sẽ cần giải phóng không gian trên nó - hoặc sử dụng đĩa đích khác - để tạo liên kết tượng trưng.)
Có một quyết định khác cho bạn để thực hiện, quá. Bạn có tạo tất cả các mục mới (cho dù chúng là bản sao hoặc liên kết tượng trưng) trong cùng một thư mục, làm phẳng hệ thống phân cấp tệp? Hoặc bạn có tạo các thư mục tại đích tương ứng với mỗi thư mục tại nguồn chứa ít nhất một .cr2
tệp không?
Làm phẳng hệ thống phân cấp tệp cho phép bạn xem tất cả các tệp cùng một lúc, dễ dàng. Đặc biệt, có thể dễ dàng thấy tất cả tên và kích thước của tệp cùng lúc, cũng như chọn bất kỳ tổ hợp tệp nào trong trình duyệt tệp đồ họa.
Nhưng nó cũng mất thông tin về những thư mục mà chúng nằm trong đó, có thể có giá trị (mặc dù bạn có thể quay lại thư mục gốc và tìm chúng ở đó nếu bạn không di chuyển các tệp).
Tuy nhiên, vấn đề lớn hơn với việc làm phẳng hệ thống phân cấp tệp là điều gì xảy ra nếu bạn có hai hoặc nhiều tệp cùng tên ở những nơi khác nhau . Nếu bạn làm phẳng hệ thống phân cấp tệp, thì tùy thuộc vào cách bạn thực hiện, tất cả trừ cái đầu tiên sẽ không được sao chép (hoặc được liên kết) và bạn sẽ gặp lỗi hoặc cảnh báo, hoặc tất cả trừ bản sao (hoặc liên kết) cuối cùng sẽ được ghi đè .
Đây là một lý do khác tôi khuyên bạn nên sao chép hoặc tạo liên kết tượng trưng thay vì di chuyển tệp. Nếu bạn "thành công" di chuyển nhiều tệp vào cùng một tệp, bạn đã mất tất cả trừ tệp cuối cùng!
Do những nhược điểm của việc làm phẳng mọi thứ vào một thư mục không có thư mục con, các cách tiếp cận tôi thực hiện ở đây xây dựng một cây thư mục mới tại đích.
Cách 1: Sao chép
Tôi hiển thị điều này trước tiên vì nó đơn giản hơn một chút, nhưng tôi đề nghị bạn thay vào đó hãy tạo các liên kết tượng trưng ("Cách 2"), đặc biệt nếu ổ đĩa đích có thể không có đủ dung lượng để chứa tất cả các tệp. "Cách 2", phức tạp hơn một chút, chi tiết hơn nhiều vì dường như có ít tài nguyên hơn về cách sử dụng kỹ thuật đó, đó là cách tôi mong đợi hầu hết mọi người trong tình huống này sẽ thích và thông tin áp dụng cho cả hai phương pháp - lời khuyên cơ bản về việc thoát khỏi không gian trong các đường dẫn - được đưa ra ở đó chứ không phải ở đây.
Khi bạn cần sao chép một cây thư mục và bạn cần tùy chỉnh thao tác sao chép, bạn thường nên sử dụng rsync
thay vì cp
. Đây là một trong những trường hợp đó.
Thay thế src
bằng đường dẫn đến thư mục cấp cao nhất chứa tất cả các tệp CR2 của bạn và thay thế dest
bằng tên của thư mục bạn muốn tạo sẽ chứa một hệ thống phân cấp các liên kết tượng trưng đến các tệp CR2, hãy chạy:
rsync -rl --prune-empty-dirs --include='*/' --include='*.cr2' --exclude='*' src/ dest
Đừng quên /
tên của thư mục nguồn, trừ khi bạn muốn tạo thêm một thư mục cấp cao nhấtdest
. Đó là, nếu bạn bỏ qua dấu vết /
, thì rsync
sẽ tạo thư mục đích cho bạn, bên trong dest
. Ví dụ, giả sử src
là một đường dẫn tương đối không chứa /
. Sau đó:
- Với lệnh
src/
của bạn rsync
, bạn nhận được một liên kết tượng trưng dest/foo/bar.cr2
cho tệp src/foo/bar.cr2
.
- Với lệnh
src
của bạn rsync
, bạn nhận được một liên kết tượng trưng cho tệp .dest/src/foo/bar.cr2
src/foo/bar.cr2
Vì nó có thể gây nhầm lẫn cho thư mục cấp cao nhất, nơi các liên kết tượng trưng sẽ được đặt cùng tên với thư mục cấp cao nhất chứa các .cr2
tệp mà các liên kết tượng trưng sẽ trỏ đến, tôi khuyên bạn nên bao gồm /
ở cuối đích tên thư mục trong rsync
lệnh của bạn . (Và, đối với thư mục nguồn, hãy cung cấp cho nó một thư mục trống, không tồn tại hoặc dành riêng cho mục đích này. Nếu không, bạn sẽ làm lộn xộn một số thư mục khác.)
Như thường là trường hợp khi bạn vượt qua tên của một tập tin hoặc thư mục để một chương trình dòng lệnh hoặc kịch bản, nếu đích hoặc nguồn đường dẫn thư mục của bạn chứa bất kỳ khoảng trống (hoặc các ký tự điều trị đặc biệt bởi lớp vỏ, giống như \
, $
, '
, và khác nhau dấu câu khác), sau đó bạn sẽ phải trích dẫn chúng . Tôi đã trình bày chi tiết cách thực hiện việc này, trong trường hợp phổ biến nhất của không gian, trong "Cách 2" - lời khuyên về trích dẫn trong phần đó cũng áp dụng ở đây. Tuy nhiên, nếu bạn không chắc chắn làm thế nào để trích dẫn tên của một thư mục, bạn có thể yêu cầu Ubuntu làm điều đó cho bạn bằng cách chỉ cần kéo thư mục vào Temrminal; đường dẫn đầy đủ của nó sẽ được dán với trích dẫn chính xác .
Sau khi sao chép chỉ các .cr2
tệp và các thư mục chứa chúng, bạn có thể mở thư mục đích trong Shotwell. (Xem phần "Mở thư mục hình ảnh (Bao gồm các thư mục con) trong Shotwell" ở trên.) Tuy nhiên, trước khi chạy rsync
, tôi khuyên bạn nên quyết định xem có muốn bỏ qua các mục bắt đầu bằng .
và nếu bạn muốn bao gồm các mục có hậu tố biến thể trường hợp. Nếu vậy, bạn sẽ phải chạy một số rsync
lệnh hơi khác nhau .
Tùy chỉnh Xử lý các mục nhập chấm và độ nhạy trường hợp
Bạn có thể muốn sử dụng một rsync
lệnh khác để thay đổi xem các tệp và thư mục bắt đầu bằng dấu chấm có bị bỏ qua hay không và bạn có muốn phân biệt chữ hoa chữ thường trong việc khớp với hậu tố hay không .cr2
.
Lệnh trên không bao gồm các thư mục và tệp có tên bắt đầu bằng .
. Để loại trừ các tệp và thư mục như vậy, đặt --exclude='.*/' --exclude='.*'
trước tất cả các --include
s và --exclude
s khác. Đó là, sử dụng rsync
lệnh này thay thế (với sự thay thế phù hợp cho src
và dest
, tất nhiên):
rsync -rl --prune-empty-dirs --exclude='.*/' --exclude='.*' --include='*/' --include='*.cr2' --exclude='*' src/ dest
Các rsync
lệnh như vậy, đến nay đã có trường hợp nhạy cảm và sẽ không sao chép các tập tin kết thúc bằng .CR2
, .Cr2
hoặc .cR2
hơn .cr2
. Nếu bạn muốn các tệp đó được sao chép, thì bạn sẽ cần tính đến điều đó bằng cách sử dụng --include
mẫu *.[cC][rR]2
thay thế *.cr2
.
Lệnh thứ ba này không phân biệt chữ hoa chữ thường và (như lệnh thứ nhất) không bỏ qua các tệp và thư mục có tên bắt đầu bằng .
:
rsync -rl --prune-empty-dirs --include='*/' --include='*.[cC][rR]2' --exclude='*' src/ dest
Nếu bạn thực hiện phương pháp sao chép các tệp với rsync
và bạn không chắc chắn về những lệnh nào bạn muốn, tôi khuyên bạn nên sử dụng lệnh đó nếu bạn muốn đảm bảo không bỏ lỡ bất kỳ điều gì. Tuy nhiên, bạn nên lưu ý rằng các dotfiles có thể chứa siêu dữ liệu và các dotfiles có tên giống như hình ảnh có thể không thực sự là hình ảnh. Xem các cuộc thảo luận về dotfiles trong phần "Khởi chạy Shotwell với Danh sách tên tệp hình ảnh" ở trên, và trên dotfiles và phân biệt chữ hoa chữ thường trong "Cách 2" bên dưới.
Lệnh thứ tư này không phân biệt chữ hoa chữ thường và (như lệnh thứ hai) không bỏ qua các tệp và thư mục có tên bắt đầu bằng .
:
rsync -rl --prune-empty-dirs --exclude='.*/' --exclude='.*' --include='*/' --include='*.[cC][rR]2' --exclude='*' src/ dest
Cách 2: Tạo liên kết tượng trưng
Đây là những gì tôi khuyên bạn nên làm, mặc dù Cách 1 vẫn ổn nếu bạn có đủ dung lượng trên ổ đĩa đích. Bạn không cần phải đọc Cách 1 để sử dụng.
Phương pháp được trình bày ở đây tạo ra một danh sách các .cr2
tệp và vòng lặp thông qua danh sách, tạo các thư mục đích khi cần thiết và điền chúng với các liên kết tượng trưng đến mỗi .cr2
tệp.
Điều này chỉ đủ phức tạp để tôi đề nghị đưa nó vào một kịch bản thay vì chỉ gõ nó một cách tương tác. Bạn có thể đặt tập lệnh bất cứ nơi nào bạn thích, nhưng để thuận tiện, tôi sẽ chỉ cho bạn cách thực hiện với tập lệnh được đặt trực tiếp trong thư mục nhà của bạn.
Viết (hoặc dán vào) tập lệnh.
Tạo một tệp văn bản make-symlinks
, trong thư mục nhà của bạn. Không cần mở rộng tập tin.
Bạn có thể làm điều này với bất kỳ trình soạn thảo văn bản nào, như Vim, Nano, Gedit hoặc Leafpad. Mặc dù vậy, đừng sử dụng trình xử lý văn bản như LibreOffice Writer. (Bạn thậm chí có thể làm điều đó bằng cách chạy cat > ~/make-symlinks
, dán nội dung của tệp và nhấn Ctrl+ Dtrên một dòng mới, nếu bạn muốn.)
Nếu bạn đặt tên cho tập lệnh khác make-symlinks
, hãy đảm bảo sử dụng tên đó khi bạn chạy các lệnh sử dụng tập lệnh sau.
#!/bin/bash
shopt -s globstar dotglob nocaseglob
for f in **/*.cr2; do
mkdir -p "$1/$(dirname "$f")"
ln -s "$PWD/$f" "$1/$f"
done
Đặt nó trong tệp và lưu tệp. Kịch bản này sử dụng globalstar, một tính năng Bash được giải thích ở trên trong "Khởi chạy Shotwell với Danh sách tên tệp hình ảnh" .
Bạn có thể thay đổi cách nó xử lý các mục chấm và phân biệt chữ hoa chữ thường.
Tùy thuộc vào nhu cầu của bạn, bạn có thể muốn thực hiện một số thay đổi:
Nếu bạn không muốn bao gồm .cr2
các tệp có tên bắt đầu bằng .
hoặc nằm trong các thư mục có tên bắt đầu .
, hãy xóa dotglob
khỏi shopt
dòng.
Các tệp và thư mục có tên bắt đầu .
thường được sử dụng cho siêu dữ liệu (xem phần "Khởi chạy Shotwell với Danh sách tên tệp hình ảnh" ở trên). Mặt khác, nếu bạn muốn chắc chắn rằng bạn có tất cả mọi thứ, hoặc nếu thiếu thứ gì đó không thể giải thích được mà bạn khá chắc chắn là có, thì nên giữ lại dotglob
.
Nếu bạn muốn chỉ bao gồm tập tin mà kết thúc trong chính xác .cr2
nhưng không trường hợp biến thể ( .CR2
, .Cr2
và .cR2
), sau đó bạn nên loại bỏ nocaseglob
. Vì tình huống của bạn liên quan đến khôi phục dữ liệu và Shotwell sẽ không hiển thị cho bạn bất kỳ tệp nào bạn đã bỏ lỡ khi mở thư mục liên kết tượng trưng - đó là điểm chính của phương pháp này - sau tất cả - bạn có thể sẽ muốn giữ lại nocaseglob
.
Làm cho nó thực thi được.
Chạy lệnh này để đánh dấu tập lệnh thực thi của bạn:
chmod +x ~/make-symlinks
Chạy nó tại nguồn và vượt qua đích làm đối số.
Sau đó thay đổi thư mục thành thư mục nguồn, tức là thư mục cấp cao nhất có chứa các hình ảnh. Ví dụ: nếu chúng nằm trong Pictures
thư mục con của thư mục chính của bạn, bạn sẽ chạy:
cd ~/Pictures
Đây là nơi bạn sẽ chạy tập lệnh. Truyền thư mục đích đến tập lệnh dưới dạng đối số dòng lệnh.
Ví dụ: nếu bạn muốn một thư mục được gọi cr2s
sẽ được tạo trên Bàn làm việc của bạn để chứa các liên kết tượng trưng, hãy chạy:
~/make-symlinks ~/Desktop/cr2s
Hoặc nếu bạn chỉ muốn thư mục đó trực tiếp trong thư mục nhà của bạn:
~/make-symlinks ~/cr2s
Hoặc nếu bạn có một ổ đĩa được gắn vào /media/you/MyDrive
và bạn muốn tạo một thư mục trên đó được gọi links
để chứa các liên kết tượng trưng:
~/make-symlinks /media/you/MyDrive/links
Nhưng nếu ổ đĩa là /media/you/My Drive
(có dấu cách) thì bạn phải sử dụng báo giá. Bất kỳ tác phẩm nào trong số này (chỉ sử dụng một, không chạy tất cả):
~/make-symlinks '/media/you/My Drive/links'
~/make-symlinks /media/you/'My Drive'/links
~/make-symlinks /media/you/My\ Drive/links
Nhưng nếu bạn sử dụng ~
cho thư mục chính của mình, đừng trích dẫn rằng:
~/make-symlinks ~/'Two Words' # good
~/make-symlinks ~/Two\ Words # good
~/make-symlinks '~/Two Words' # BAD, because ~ doesn't get expanded
make-symlinks
tạo thư mục đích cho bạn nếu nó không tồn tại, giống như nó tạo các thư mục con bên trong nó. Tuy nhiên, nó vẫn hoạt động nếu đích đã tồn tại.
Bạn thậm chí có thể chạy nó nhiều lần và vượt qua cùng một thư mục đích (ví dụ: nếu bạn làm gián đoạn nó với Ctrl+ C), mặc dù bạn sẽ gặp failed to create symbolic link
lỗi cho các liên kết tượng trưng đã tồn tại và điều đó có thể gây nhầm lẫn.
Bạn có thể không muốn chuyển tên của một thư mục đã tồn tại và chứa các tệp không liên quan (như thư mục chính của bạn) đến make-symlinks
. Nếu bạn làm như vậy, bạn có thể mong đợi một loạt các liên kết tượng trưng và thư mục con sẽ được tạo trong đó. Bạn có thể muốn sử dụng một thư mục mới - hoặc một thư mục chưa tồn tại - cho make-symlinks
.
Nhập cây symlink mới được tạo vào Shotwell.
Sau khi bạn chạy make-symlinks
, chỉ cần nhập thư mục bạn đã chuyển vào thư mục Shotwell, sử dụng một trong các phương thức được đưa ra trong phần đầu tiên của câu trả lời này ( "Mở Thư mục hình ảnh (Bao gồm cả thư mục con) trong Shotwell" ). Ví dụ: bạn có thể mở Shotwell và kéo thư mục vào.
Vì tất cả các mục trong thư mục là các liên kết tượng trưng đến .cr2
các tệp hoặc thư mục chứa chúng, không có loại tệp nào khác, Shotwell không nên xem bất kỳ tệp nào khác.