Sesuatu seperti
shotwell *.cr2 ./
Itu tidak berfungsi, tetapi pada dasarnya saya ingin menggunakan shotwell untuk membuka semua file yang diakhiri dengan .cr2
dan dalam direktori saat ini (termasuk subfolder)
Konteksnya adalah bahwa saya kehilangan foto yang saya ambil pada kamera saya yang telah saya hapus dari kartu memori saya.
Ada thumbnail untuk mereka di "gambar hilang" shotwell tapi saya tidak dapat menemukannya. Jadi saya pikir saya akan lari photorec
untuk mencoba dan menemukan mereka. Akibatnya photorec memberi saya banyak folder dan file, cukup sehingga memenuhi hard drive saya. Alih-alih menyaring semua file satu per satu, saya memutuskan untuk mencari file .cr2 pada hard drive saya, sambil menghindari folder tertentu Photogs
yang saya tahu tidak memilikinya karena itu bukan bagian dari photorec
dump data.
sumber
Jawaban:
Biasanya, Anda hanya perlu membuka Shotwell dan menariknya ke dalam folder.
Jika perlu, Anda dapat membuat shell membuat daftar file CR2 dan memberi tahu Shotwell untuk hanya membuka file-file itu. Kadang-kadang itu mungkin yang Anda inginkan, tetapi dalam hal ini tidak melakukan apa yang Anda butuhkan karena perilaku Shotwell - dalam beberapa keadaan lain, fitur - untuk secara otomatis menampilkan file gambar lain (dari semua jenis) yang berada di folder yang sama dengan gambar yang Anda buka.
Untuk memastikan Shotwell hanya tahu tentang gambar yang Anda minati, Anda bisa mengkloning pohon direktori di tempat lain, hanya menyalin
.cr2
file dan folder yang berisi mereka, tetapi tidak ada yang lain. Itu mungkin membutuhkan ruang tambahan yang besar. Jadi pendekatan lain adalah membangun hierarki tautan simbolik - di mana alih-alih memiliki pohon direktori baru salinan dari.cr2
file asli Anda, Anda memiliki pohon direktori symink baru untuk mereka. Ini membutuhkan ruang jauh lebih sedikit.Jawaban ini mencakup semua pendekatan itu.
Membuka Folder Gambar (Termasuk Subfolder) di Shotwell
Shotwell sendiri memberi Anda dua cara untuk membuka seluruh pohon direktori foto. Jika ini bekerja untuk Anda, maka Anda tidak perlu melakukan apa pun yang cerdik di baris perintah atau bahkan menggunakannya sama sekali. Jika tidak, Anda mungkin akan melakukan ini sehubungan dengan teknik lain. (Misalnya, jika Anda akhirnya membuat direktori baru symlink atau salinan
.cr2
file Anda, Anda dapat menggunakan salah satu cara ini untuk membukanya.)Cara 1: Cukup buka seluruh folder di Shotwell.
Di Shotwell, di menu File , klik Impor dari Folder . Kemudian pilih folder tempat Anda ingin mengimpor gambar. Ini tidak akan terbatas pada
.cr2
file, tetapi jika Anda membuka file dari beberapa subfolder yang berisi.cr2
gambar yang dibuat dari kamera digital, maka kemungkinan besar hanya file-file itu saja yang ada.Lihat jawaban Jakob untuk Perlihatkan semua gambar secara rekursif (termasuk sembarang subfolder) untuk informasi lebih lanjut.
Cara 2: Seret folder ke Shotwell.
Dengan sebagian besar lingkungan desktop dan browser file, Anda juga dapat membuka Shotwell dan menyeret folder yang berisi gambar Anda ke jendela Shotwell. Seperti Impor dari Folder , ini adalah cara lain yang disarankan Shotwell untuk membuka foto.
Saat Anda menyeret dari jendela browser file atau desktop ke Shotwell, Anda dapat menyeret ke perpustakaan tertentu. Atau jika Anda tidak memiliki banyak pustaka yang diatur, Anda bisa menyeret dasarnya di mana saja dan berfungsi. (Anda bahkan tidak perlu menyeret ke panel kiri.)
Metode ini sangat nyaman, dan sama kuatnya dengan memilih folder secara manual (dengan File > Impor dari Folder , seperti dijelaskan di atas). Ketika Anda membuka file atau folder menggunakan salah satu dari metode ini , Shotwell memberi Anda opsi untuk membuka foto tanpa menyalinnya ke pustaka.
Untuk mengimpor tanpa menyalin, klik Impor di Tempat alih-alih Salin Foto .
Meluncurkan Shotwell dengan Daftar Nama File Gambar
Jika karena alasan tertentu Anda ingin atau perlu melakukan ini dengan menjalankan perintah di Terminal, Anda dapat menjalankan
shotwell
perintah dan meneruskan nama file masing-masing gambar sebagai argumen. Globstar membuatnya mudah:Itu membuka
.cr2
file yang terletak di mana saja di direktori saat ini. Itu berbeda dari menjalankan Shotwell dan kemudian menyeret folder ke dalam, dalam hal itu Shotwell hanya akan mencoba untuk mengimpor file yang namanya Anda berikan. Namun, karena Shotwell sering memperlihatkan file gambar lain dari folder yang sama dengan file yang Anda suruh dibuka, ini mungkin tidak memadai untuk kebutuhan Anda. (Dan informasi lebih lanjut yang Anda berikan tentang masalah Anda menunjukkan bahwa itu bukan masalah . Lihat di bawah untuk alternatif.)Ini tidak termasuk file atau subfolder yang namanya dimulai dengan
.
. Namun, jika Anda memiliki file CR2 yang namanya dimulai dengan titik, maka sebagian besar waktu Anda mungkin tidak ingin membukanya di Shotwell. Kecuali Anda sengaja memberi nama file atau folder Anda dengan cara ini, filefile dengan gambar atau ekstensi nama file dokumen lebih cenderung menjadi file metadata daripada gambar atau dokumen yang sebenarnya. Misalnya, macOS sering menambahkan file seperti itu (misalnya,._kittens.cr2
untuk gambar aktualkittens.cr2
) ketika mengakses media eksternal (termasuk flash drive dan kamera digital).Jika Anda juga ingin menemukan file yang namanya dimulai
.
atau ada di folder yang namanya dimulai.
, maka aktifkan dotglob juga. Anda dapat melakukan ini denganshopt -s dotglob
atau dengan melewati keduanyaglobstar
dandotglob
keshopt
builtin:Secara default, gumpalan bersifat case-sensitive. Tapi Anda mungkin ingin untuk mencocokkan nama file kasus-insensitively , sehingga untuk membuka file berakhiran
.cr2
,.Cr2
,.cR2
, dan.CR2
. Untuk melakukan itu, baik:Aktifkan nocaseglob dengan menjalankan
shopt -s
dengannocaseglob
baik dengan sendirinya atau dengan pilihan shell lainnya. Misalnya, untuk dijalankanshotwell
di semua.cr2
file, cari case-insensitive dan sertakan.
-file dan file di.
-directories:Atau , gunakan
.[cC][rR]2
alih-alih.cr2
dalam pola glob Anda sendiri. Misalnya, ini mencapai yang sama seperti di atas:Perhatikan bahwa sensitivitas case sepenuhnya terpisah dari apakah
.
file dan folder cocok atau tidak . Anda dapat menghapusdotglob
dari contoh di atas dan mereka masih bisa peka terhadap huruf besar-kecil.Untuk menentukan direktori daripada hanya menggunakan direktori saat ini, letakkan namanya dan
/
sebelum**/*.cr2
glob. Misalnya, menggantishotwell
perintah di atas dengan yang ini akan membuka semua.cr2
file di dalamPictures
subdirektori direktori home Anda:Berbeda dengan perintah pertama yang menggunakan direktori Anda saat ini, di mana pun Anda menjalankan perintah itu, Anda akan memberi tahu Shotwell untuk membuka file yang sama.
Pengujian
Jika Anda benar-benar harus menggunakan terminal untuk ini, maka saya kira itu mungkin bagian dari sesuatu yang lebih kompleks. Jika Anda suka, Anda dapat menguji perintah seperti sebelum benar-benar menjalankan mereka dengan mengganti
shotwell
denganprintf '%s\n'
. Alih-alih meneruskan nama file ke Shotwell, itu daftar mereka satu per baris. Misalnya, di komputer saya:Mematikan Globstar dan Opsi Shell Lainnya
Opsi shell globstar telah diaktifkan untuk berfungsi, seperti yang dilakukan oleh
shopt -s globstar
perintah (di atas). Jika sudah diaktifkan, maka Anda tidak perlu banyak perintah. Dan Anda hanya perlu mengatur globstar sekali per instance shell.Anda dapat mematikan globstar dengan menjalankan:
Dan Anda dapat memeriksa apakah globstar hidup atau mati dengan menjalankan:
Jika Anda menggunakan globstar dalam sebuah skrip, Anda harus mempertimbangkan untuk mematikannya kembali jika mungkin ada kode yang muncul setelahnya dalam skrip yang sama yang tidak ditulis dengan globstar dalam pikiran. Misalnya, menulis
**
ketika yang Anda maksud*
biasanya tidak ada masalah ketika globstar dinonaktifkan, tetapi dengan globstar dihidupkan, itu dapat menyebabkan masalah serius dengan membuat perintah memengaruhi jauh lebih banyak file daripada yang dimaksudkan seseorang.Demikian pula, jika Anda menggunakan dotglob atau nocaseglob dan Anda juga ingin mematikannya, Anda dapat melakukannya dengan
shopt -u dotglob
danshopt -u nocaseglob
, masing-masing. Anda juga dapat melewatkan beberapa opsi shellshopt -u
untuk menghapusnya sekaligus. Misalnya, untuk mematikanglobstar,
dotglob
, dannocaseglob
:Dibandingkan dengan globstar, ada lebih sedikit kesalahan serius yang mungkin Anda lakukan karena Anda lupa Anda membiarkan dotglob atau nocaseglob aktif. Tetapi orang lain (termasuk orang yang Anda hubungi di situs seperti Ask Ubuntu) biasanya menganggap dotglob dan nocaseglob dinonaktifkan ketika mereka menyarankan perintah untuk Anda gunakan, kecuali jika Anda memberi tahu mereka sebaliknya.
Untuk informasi lebih lanjut tentang opsi-opsi shell terkait-glob ini (dan juga pada gumpalan pada umumnya ), lihat manual referensi bash . Mereka semua tercakup terutama dalam 4.3.2 The Shopt Builtin . Untuk globstar, lihat juga 3.5.8.1 Pencocokan Pola . Untuk dotglob, lihat juga 3.5.8 Nama file Ekspansi .
Membangun Pohon Direktori Baru
Karena dalam kasus Anda Anda tampaknya benar-benar membutuhkan Shotwell untuk hanya menampilkan
.cr2
file, Anda memiliki non-.cr2
file dalam folder yang sama dengan.cr2
file, dan penelusuran gambar di Shotwell secara otomatis menawarkan file-file itu juga , sepertinya Anda harus memiliki folder yang tidak mengandung file gambar selain.cr2
file yang Anda coba buka.Memindahkan file, seperti yang Anda sarankan , adalah salah satu pendekatan, tetapi saya sarankan sebagai gantinya menyalin file atau, lebih baik, membuat tautan simbolis ke file (lihat juga FOLDOC ), karena:
Ada keputusan lain untuk Anda buat juga. Apakah Anda membuat semua entri baru (apakah itu salinan atau symlink) di direktori yang sama, meratakan hierarki file? Atau apakah Anda membuat direktori di tujuan yang sesuai dengan masing-masing direktori di sumber yang mengandung setidaknya satu
.cr2
file?Meratakan hierarki file memungkinkan Anda melihat semua file sekaligus, dengan mudah. Secara khusus, mudah untuk melihat nama dan ukuran file sekaligus, serta untuk memilih kombinasi file dalam browser file grafis.
Tetapi juga kehilangan informasi tentang folder tempat mereka berada, yang mungkin berharga (meskipun Anda dapat kembali ke folder asli dan mencarinya di sana jika Anda tidak memindahkan file).
Masalah yang lebih besar dengan meratakan hierarki file, adalah apa yang terjadi jika Anda memiliki dua atau lebih file dengan nama yang sama di tempat yang berbeda . Jika Anda meratakan hierarki file, maka tergantung pada bagaimana Anda melakukannya, semua kecuali yang pertama akan gagal disalin (atau ditautkan) dan Anda akan mendapatkan kesalahan atau peringatan, atau semua kecuali salinan terakhir (atau tautan) akan menjadi ditimpa .
Ini adalah alasan lain saya merekomendasikan menyalin atau membuat symlink daripada memindahkan file. Jika Anda "berhasil" memindahkan banyak file ke file yang sama, Anda telah kehilangan semua kecuali yang terakhir!
Karena kelemahan meratakan semuanya menjadi satu direktori tanpa subdirektori, pendekatan yang saya ambil di sini membangun pohon direktori baru di tujuan.
Cara 1: Menyalin
Saya perlihatkan ini dulu karena ini sedikit lebih sederhana, tetapi saya sarankan Anda membuat tautan simbolik ("Way 2"), terutama jika drive tujuan mungkin tidak memiliki cukup ruang untuk menampung semua file. "Cara 2," yang sedikit lebih rumit, jauh lebih terperinci karena tampaknya ada lebih sedikit sumber daya tentang cara menggunakan teknik itu, itu cara yang saya harapkan kebanyakan orang dalam situasi ini akan lebih suka, dan informasi yang berlaku untuk kedua metode - saran dasar tentang keluar dari ruang di jalur - diberikan di sana daripada di sini.
Bila Anda perlu menyalin pohon direktori dan Anda perlu untuk menyesuaikan operasi copy, Anda harus biasanya menggunakan
rsync
bukancp
. Ini merupakan salah satu dari kasus-kasus itu.Mengganti
src
dengan jalur ke direktori tingkat atas yang berisi semua file CR2 Anda, dan menggantidest
dengan nama direktori yang ingin Anda buat yang akan berisi hierarki tautan simbolik ke file CR2, jalankan:Jangan lupa nama
/
setelah direktori sumber, kecuali jika Anda ingin direktori tingkat atas tambahan dibuat di dalamnyadest
. Artinya, jika Anda menghilangkan trailing/
, makarsync
akan membuat direktori tujuan untuk Anda, di dalamnyadest
. Sebagai contoh, misalkansrc
adalah jalur relatif yang mengandung no/
. Kemudian:src/
dirsync
perintah Anda, Anda mendapatkan symlinkdest/foo/bar.cr2
untuk file tersebutsrc/foo/bar.cr2
.src
dirsync
perintah Anda, Anda mendapatkan symlink untuk file tersebut .dest/src/foo/bar.cr2
src/foo/bar.cr2
Karena ini bisa membingungkan untuk direktori tingkat atas di mana symlinks akan ditempatkan memiliki nama yang sama dengan direktori top-level yang berisi
.cr2
file - file yang akan ditunjukkan oleh symlinks, saya sarankan Anda memasukkan/
di akhir tujuan nama direktori dalamrsync
perintah Anda . (Dan, untuk direktori sumber, berikan direktori yang kosong, tidak ada, atau didedikasikan untuk tujuan ini. Jika tidak, Anda akan mengacaukan beberapa folder lain.)Seperti umumnya terjadi ketika Anda melewati nama file atau direktori untuk program baris perintah atau script, jika tujuan atau sumber Anda jalur direktori mengandung ruang kosong (atau karakter diperlakukan khusus oleh shell, seperti
\
,$
,'
, dan berbagai tanda baca lainnya), maka Anda harus mengutipnya . Saya telah merinci cara melakukan ini, untuk kasus ruang yang paling umum, dalam "Cara 2" - saran tentang mengutip di bagian itu juga berlaku di sini. Namun, jika Anda tidak yakin bagaimana cara mengutip nama folder, Anda dapat meminta Ubuntu melakukannya untuk Anda hanya dengan menyeret folder tersebut ke dalam Temrminal; path lengkapnya akan disisipkan dengan kutipan yang benar .Setelah menyalin hanya
.cr2
file dan folder yang berisi itu, Anda dapat membuka folder tujuan di Shotwell. (Lihat "Membuka Folder Gambar (Termasuk Subfolder) di Shotwell" di atas.) Namun, sebelum menjalankanrsync
, saya sarankan Anda memutuskan apakah ingin melewatkan entri yang dimulai dengan.
dan jika Anda ingin memasukkan entri dengan akhiran varian-huruf. Jika demikian, Anda harus menjalankan beberaparsync
perintah yang sedikit berbeda .Menyesuaikan Penanganan Entri Bertitik dan Sensitivitas Kasus
Anda mungkin ingin menggunakan
rsync
perintah berbeda untuk mengubah apakah file dan direktori yang dimulai dengan titik dilewati dan apakah Anda ingin sensitivitas huruf besar atau kecil dalam mencocokkan sufiks.cr2
.Perintah di atas tidak termasuk direktori dan file yang namanya mulai dengan
.
. Untuk mengecualikan file dan direktori tersebut, letakkan di--exclude='.*/' --exclude='.*'
depan semua--include
s dan--exclude
s lainnya. Artinya, gunakanrsync
perintah ini sebagai gantinya (dengan penggantian yang sesuai untuksrc
dandest
, tentu saja):The
rsync
perintah ditampilkan sejauh ini telah case-sensitive dan tidak akan menyalin file yang berakhir dengan.CR2
,.Cr2
atau.cR2
bukan.cr2
. Jika Anda ingin file seperti itu disalin, maka Anda harus memperhitungkannya dengan menggunakan--include
pola*.[cC][rR]2
sebagai ganti*.cr2
.Perintah ketiga ini tidak peka huruf besar-kecil dan (seperti perintah pertama) tidak melewatkan file dan direktori yang namanya dimulai dengan
.
:Jika Anda mengambil pendekatan menyalin file
rsync
, dan Anda tidak yakin dengan perintah mana yang Anda inginkan, saya sarankan menggunakan yang itu jika Anda ingin memastikan tidak ketinggalan apa pun. Namun, Anda harus menyadari bahwa dotfile mungkin mengandung metadata, dan dotfile yang diberi nama seperti gambar mungkin bukan benar-benar gambar. Lihat diskusi tentang dotfile di bagian "Meluncurkan Shotwell dengan Daftar Nama File Gambar" di atas, dan pada dotfile dan sensitivitas case dalam "Way 2" di bawah.Perintah keempat ini case-sensitive dan (seperti perintah kedua) tidak file melompat dan direktori yang namanya mulai dengan
.
:Cara 2: Membuat Tautan Simbolik
Inilah yang saya sarankan Anda lakukan, meskipun Way 1 tidak apa-apa jika Anda memiliki cukup ruang pada drive tujuan. Anda tidak harus membaca Way 1 untuk menggunakan ini.
Metode yang disajikan di sini membuat daftar
.cr2
file dan loop melalui daftar, membuat direktori target sesuai kebutuhan dan mengisi mereka dengan tautan simbolis ke setiap.cr2
file.Ini cukup rumit sehingga saya sarankan untuk memasukkannya ke dalam skrip daripada mengetiknya secara interaktif. Anda dapat meletakkan skrip di mana pun Anda suka, tetapi untuk kenyamanan, saya akan menunjukkan cara melakukannya dengan skrip yang ditempatkan langsung di folder rumah Anda.
Tulis (atau rekatkan) skrip.
Buat file teks
make-symlinks
,, di folder rumah Anda. Tidak diperlukan ekstensi file.Anda dapat melakukan ini dengan editor teks apa pun, seperti Vim, Nano, Gedit, atau Leafpad. Namun, jangan gunakan pengolah kata seperti LibreOffice Writer. (Anda bahkan bisa melakukannya dengan menjalankan
cat > ~/make-symlinks
, menempelkan isi file, dan menekan Ctrl+ Dpada baris baru, jika Anda mau.)Jika Anda memberi nama skrip itu selain
make-symlinks
, pastikan untuk menggunakan nama itu saat Anda menjalankan perintah yang menggunakan skrip nanti.Masukkan itu ke dalam file, dan simpan file tersebut. Script ini menggunakan globstar, fitur Bash yang dijelaskan di atas dalam "Meluncurkan Shotwell dengan Daftar Nama File Gambar" .
Anda dapat mengubah cara menangani entri bertitik dan sensitivitas huruf.
Tergantung pada kebutuhan Anda, Anda mungkin ingin melakukan beberapa perubahan:
Jika Anda tidak ingin menyertakan
.cr2
file yang namanya dimulai.
atau berada di direktori yang namanya dimulai.
, hapusdotglob
darishopt
baris.File dan direktori yang namanya dimulai dengan
.
sering digunakan untuk metadata (lihat bagian "Meluncurkan Shotwell dengan Daftar Nama File Gambar" di atas). Di sisi lain, jika Anda ingin memastikan Anda memiliki segalanya, atau jika ada sesuatu yang tidak dapat dijelaskan yang Anda yakin benar ada di sana, maka Anda harus menyimpannyadotglob
.Jika Anda ingin menyertakan hanya file yang akhir persis
.cr2
tapi tidak varian kasus (.CR2
,.Cr2
, dan.cR2
), maka Anda harus menghapusnocaseglob
. Karena situasi Anda melibatkan pemulihan data dan Shotwell tidak akan memperlihatkan kepada Anda salah satu file yang Anda lewatkan ketika Anda membuka direktori tautan simbolik - bagaimanapun, itulah inti dari metode ini - Anda mungkin ingin menyimpannyanocaseglob
.Jadikan itu dapat dieksekusi.
Jalankan perintah ini untuk menandai skrip Anda dapat dieksekusi:
Jalankan di sumber dan lewati tujuan sebagai argumen.
Kemudian ubah direktori ke direktori sumber, yaitu folder tingkat atas yang berisi gambar-gambar. Misalnya, jika mereka berada di
Pictures
subdirektori direktori home Anda, Anda akan menjalankan:Di sinilah Anda akan menjalankan skrip. Lewati direktori tujuan ke skrip sebagai argumen baris perintah.
Misalnya, jika Anda ingin direktori yang dipanggil
cr2s
dibuat di Desktop Anda berisi tautan simbolik, jalankan:Atau jika Anda hanya ingin direktori itu langsung di folder rumah Anda:
Atau jika Anda memiliki drive yang terpasang di
/media/you/MyDrive
dan Anda ingin membuat folder yang dipanggillinks
untuk memuat tautan simbolik:Tetapi jika drive itu
/media/you/My Drive
(dengan spasi) maka Anda harus menggunakan kutipan. Salah satu dari karya-karya ini (gunakan hanya satu, jangan jalankan semuanya):Tetapi jika Anda menggunakan
~
untuk direktori home Anda, jangan mengutip itu:make-symlinks
membuat direktori tujuan untuk Anda jika belum ada, sama seperti itu membuat subdirektori di dalamnya. Namun, itu masih berfungsi jika tujuan sudah ada.Anda bahkan dapat menjalankannya beberapa kali dan melewati direktori tujuan yang sama (misalnya, jika Anda menginterupsinya dengan Ctrl+ C), meskipun Anda akan mendapatkan
failed to create symbolic link
kesalahan untuk symlink yang sudah ada, dan itu bisa membingungkan.Anda mungkin tidak ingin meneruskan nama direktori yang sudah ada dan berisi file yang tidak terkait (seperti direktori home Anda)
make-symlinks
. Jika ya, Anda dapat mengharapkan sejumlah symlink dan subfolder dibuat di dalamnya. Anda mungkin ingin menggunakan direktori baru - atau yang belum ada - untukmake-symlinks
.Impor pohon symlink yang baru dibuat ke Shotwell.
Setelah Anda menjalankan
make-symlinks
, cukup impor direktori yang Anda berikan ke Shotwell, menggunakan salah satu metode yang diberikan di bagian pertama dari jawaban ini ( "Membuka Folder Gambar (Termasuk Subfolder) di Shotwell" ). Misalnya, Anda bisa membuka Shotwell dan menyeret folder masuk.Karena semua entri dalam folder adalah tautan simbolis ke
.cr2
file atau direktori yang berisi mereka, tanpa jenis file lain, Shotwell seharusnya tidak melihat file lainnya.sumber
Shotwell akan menggilir semua gambar yang ditemukan di setiap direktori tempat gambar terbuka, jadi menggunakan
find -name '*.cr2' -exec shotwell '{}' +
seperti yang saya sarankan pada awalnya tidak benar-benar membantu. Karena pengaturan Shotwell agak terbatas, satu-satunya cara saya bisa memikirkan untuk hanya membuka file yang Anda inginkan adalah memindahkan file ke direktori baru sendiri.Anda dapat menggunakannya
find
untuk itu:Ganti
cp
denganmv
jika Anda ingin menghindari membuat file duplikat.Catatan:
mkdir ~/cr2files
buat direktori baru di direktori home Andafind
cari secara rekursif dari direktori saat ini ke bawah melalui pohon-type f
hanya mencari file-iname
cari file berdasarkan nama, abaikan case'*.cr2'
nama yang diakhiri dengan.cr2
- gunakan tanda kutip untuk menghentikan shell yang memperluas bola dunia sebelum diteruskan kefind
-not -path './dir/*'
akan mengecualikan isi direktoridir
dari hasil{}
mewakili jalur file yang ditemukan--
setelahnyacp
adalah untuk memberitahu untukcp
tidak menerima opsi lebih lanjut, yang menghindari nama file yang dimulai dengan-
menyebabkan masalahAnda kemudian dapat membuka file apa pun di direktori baru dengan Shotwell dan melihat semuanya
sumber
Opsi 1 - Menggunakan
xargs
saat nama file berisi spasiSeperti yang ditunjukkan oleh komentar di bawah ini, penggunaan
back ticks
(Opsi 3 di bawah) akan rusak ketika nama file berisi spasi. Metode yang lebih aman menggunakanfind
perintah dan meneruskan outputshotwell
menggunakanxargs
opsi terlihat seperti ini:The
-print0
flag mengatakan menemukan menggunakan\0
(null karakter) pembatas antara nama file, dan-0
bendera mengatakanxargs
untuk mengharapkan ini\0
pembatas.Kredit untuk jawaban yang sangat baik yang ditemukan di sini ( Cara mem-pipe daftar file yang dikembalikan dengan perintah find ) di Stack Overflow.
Opsi 2 - Menggunakan
-exec
saat nama file berisi spasiSebagai komentar di bawah ini menunjukkan,
-exec
opsi ini juga mendukung nama file yang mengandung spasi. Komentar lain di bawah ini menunjukkan ini terputus ketika jumlah file melebihi Ini akan terlihat seperti ini:Opsi 3 - Ketika nama file tidak memiliki spasi
Di masa lalu, sebelum nama file memiliki spasi dan menjadi 256 karakter, opsi ini berfungsi dengan baik. Anda akan menemukan opsi ini disebutkan di banyak situs web lain tetapi Anda tidak boleh menggunakan opsi ini . Kembali pada hari itu, menggunakan
find
perintah dan meneruskan keluaran keshotwell
adalah metode paling sederhana:Ini dimulai
find
dari direktori saat ini dan termasuk semua sub-direktori:$(...)
dalam bash..
memberikanfind
titik awal yang merupakan direktori saat ini. Anda bisa lulus/home/$USER/Pictures
atau yang lainnya.
.-name
memberitahu find untuk mencari nama file (bukan direktori).shotwell
. yaitu Anda dapat menggunakannya untukcat
,head
,tail
dan yang paling perintah Linux populer lainnya.sumber
xargs
dan menggunakan-0
semua nama file menggunakan string NULL sebagai pemisah$(
)
sintaks substitusi perintah daripada sintaks substitusi perintah backtick, itu tidak relevan dengan masalah ini - mereka berdua gagal dengan cara yang persis sama. @Serg Saya sarankan memposting jawaban baru tentang bagaimana melakukannyaxargs
. (Mengganti substitusi"
"
juga tidak akan berhasil: semuafind
hasil akan disahkan sebagai argumen tunggal.)xargs
opsiStack Overflow
ketika menulis jawaban ini. Saya akan memperluas dengan opsi itu juga. Sayangnya saya harus boot dengan Windows 8 pagi ini untuk memperbaikiNTFS
partisi yang rusak sehingga pengujian bermasalah. Saya akan memperbarui jawabannya nanti. Terima kasih telah menunjukkannya :)-exec
?-exec
opsi :)Saya tidak sadar shotwell bahkan membuka file mentah. Saya yakin Anda mungkin mendapatkan jarak tempuh lebih dengan digikam atau darktable. Digikam hadir dengan beberapa komponen Kde dan merupakan pengelola foto yang cukup bagus. Darktable hadir dengan kemampuan editing non-destruktif yang sangat bagus.
sumber
.cr2
file dalam folder? Jika demikian, maka ini bisa menjadi berharga, karena pembuatnya telah memiliki kesulitan mendapatkan Shotwell untuk menunjukkan hanya satu.cr2
file. Meskipun saya telah menambahkan pendekatan tambahan pada jawaban saya untuk memungkinkan penggunaan Shotwell untuk menelusuri hanya file-file itu dan tidak ada yang lain, saya agak curiga Shotwell bukan alat terbaik untuk ini.