ฉันทำการทดสอบบางอย่างในแผนผังไดเร็กทอรี Photos และระบบต่อไปนี้ที่มีเชลล์สคริปต์สองตัวใช้งานได้สำหรับฉัน
แรก
:
#!/bin/bash
ค้นหา * -type d -exec วินาที {} \;
เสียงก้อง ""
ที่สอง
:
#!/bin/bash
num=$(ls "$1"/*.jpg 2> /dev/null | wc -l)
ถ้า [ $num -ne 0 ]
แล้ว
เสียงสะท้อน -n "."
img2pdf -o "$1/${1//\//-}_${num}_pictures".pdf "$1"/*.jpg
ไฟ
แก้ไขสองครั้ง: สคริปต์สำรอง ที่สอง
สร้างไฟล์ pdf โดยไม่มีรูปภาพและ 'รูปภาพ' ในชื่อ:
#!/bin/bash
num=$(ls "$1"/*.jpg 2> /dev/null | wc -l)
ถ้า [ $num -ne 0 ]
แล้ว
เสียงสะท้อน -n "."
img2pdf -o "$1/${1##*/}".pdf "$1"/*.jpg
ไฟ
คัดลอกและวางจากพื้นที่โค้ดลงในโปรแกรมแก้ไขข้อความและสร้างไฟล์ แรก
และ ที่สอง
ทำให้พวกเขาปฏิบัติการได้
chmod +x วินาทีแรก
ย้ายไปยังไดเร็กทอรีใน PATH หากเป็นการใช้งานส่วนตัวของคุณเท่านั้น ให้ [สร้างและ] ย้ายเข้าไป ~/ถังขยะ
. มิฉะนั้น หากผู้ใช้รายอื่นควรใช้ shellscripts เหล่านี้ด้วย ให้ย้ายเข้าไป /usr/local/bin
mkdir ~/bin
mv วินาทีแรก ~/bin
คุณอาจต้องรีบูตเพื่อรับ ~/ถังขยะ
เข้าสู่เส้นทางของคุณ
ตอนนี้คุณพร้อมที่จะใช้มันแล้ว เปลี่ยนไดเร็กทอรีไปที่ด้านบนหรือแผนผังไดเร็กทอรีที่คุณมีรูปภาพและเรียกใช้ แรก
.
ตัวอย่าง (แต่คุณมีชื่อท้องถิ่นไม่ใช่รูปภาพเหมือนภาษาอังกฤษ)
ซีดี ~/รูปภาพ
แรก
มันจะเขียนจุดไปที่หน้าต่างเทอร์มินัลสำหรับแต่ละไดเร็กทอรีย่อยซึ่งพบรูปภาพอย่างน้อยหนึ่งรูปและสร้างไฟล์ pdf
คุณสามารถค้นหาไฟล์ pdf ด้วยคำสั่งต่อไปนี้
ค้นหาชื่อ "*.pdf"
การแก้ไขที่สำคัญ:
หลังจากการพูดคุยกับผู้โพสต์ต้นฉบับ ฉันคิดว่าฉันเข้าใจโครงสร้างของไดเร็กทอรีไดเร็กทอรีที่จะประมวลผลแล้ว สำเนาของไฟล์ในระดับที่ต่ำกว่าจะอยู่ในไดเร็กทอรีย่อย 1 ที่มีชื่อบุคคล
ไฟล์ในไดเร็กทอรีย่อย 1 เหล่านี้จะถูกรวมเป็นไฟล์ pdf
ตัวอย่าง:
$ ต้นไม้ -U
.
âââ อดัม
â âââ mkusb-minp-2-crop.jpg
â âââ us_keyboard_for_sudo_password.jpg
â âââ nautilus-เชื่อมต่อกับเซิร์ฟเวอร์-2.jpg
â âââ รูปที่ 1
â  â âââ mkusb-minp-2-crop.jpg
â  â  âââ nautilus-เชื่อมต่อกับเซิร์ฟเวอร์-2.jpg
â âââ รูปที่ 2
â  â âââ us_keyboard_for_sudo_password.jpg
â âââ adam.pdf
âââ เบ็ตตี้
âââ nautilus-เชื่อมต่อกับเซิร์ฟเวอร์-1.jpg
âââ mkusb-minp-3-cropx.jpg
âââ รูปที่1
â âââ nautilus-เชื่อมต่อกับเซิร์ฟเวอร์-1.jpg
â âââ คาลามาเรส-เมานต์-failed.jpg
âââ ภาพที่ 2
â âââ mkusb-minp-3-cropx.jpg
âââ คาลามาเรส-เมานต์-failed.jpg
âââ betty.pdf
6 ไดเร็กทอรี 14 ไฟล์
หากคุณเปลี่ยนไดเร็กทอรีการทำงานด้วย ซีดี
ไปยังตำแหน่งของไดเร็กทอรีชื่อเหล่านี้ คุณสามารถใช้การแก้ไขต่อไปนี้ แรก
เชลล์สคริปต์
#!/bin/bash
ค้นหา -minความลึก 1 -สูงสุดความลึก 1 -ประเภท d -exec วินาที {} \;
เสียงก้อง ""
มันจะเรียกใช้ ที่สอง
shellscript เฉพาะในไดเร็กทอรีชื่อและไม่มองหาสิ่งที่อยู่ใน [บนหรือ] ระดับล่างของไดเร็กทอรีทรี
ต่อไปนี้จะแสดงให้เห็นว่า หา
ค้นหาเฉพาะไดเร็กทอรีชื่อ
$ หา -ความลึกขั้นต่ำ 1 -ความลึกสูงสุด 1
./อดัม
./เบ็ตตี้