คำถามติดแท็ก directory

โครงสร้างระบบไฟล์ที่ใช้เก็บไฟล์คอมพิวเตอร์

5
รายการไดเรกทอรีทั้งหมดที่ไม่มีไฟล์ที่มีชื่อไฟล์ที่กำหนดไว้ภายใน
ฉันจะไปยังรายการไดเรกทอรีทั้งหมดที่ไม่มีไฟล์ที่มีชื่อไฟล์ที่กำหนดไว้ภายในได้อย่างไร? เช่นได้รับต้นไม้ต้นนี้ / /a README file001 file002 /b README file001 /c file003 ฉันต้องการที่จะแสดงรายการไดเรกทอรีที่ไม่ได้ตั้งชื่อไฟล์เป็นในกรณีนี้มันจะเป็นไดเรกทอรีREADME /cฉันจะทำอย่างไร ฉันไม่สามารถคิดใด ๆ findไวยากรณ์ใช้เช่น
12 files  directory 

1
อะไรคือความแตกต่างระหว่าง 'ls' และ 'ls -l' เมื่อฉันไม่ได้รับอนุญาตให้ดำเนินการในไดเรกทอรีนั้น
ฉันสร้างไดเรกทอรีที่เรียกว่าfolderและนำสิทธิ์ดำเนินการออกไป $ mkdir folder $ touch folder/innerFile $ mkdir folder/innerFolder $ chmod -x folder ตอนนี้ถ้าฉันทำ $ ls folder มันส่งออกรายการไฟล์ แต่เมื่อฉันทำ $ ls -l folder ฉันเข้าใจ ls: innerFile: Permission denied ls: innerFolder: Permission denied ทำไมถึงเป็นอย่างนั้น?

1
ความสำคัญของ dot ในคำสั่ง bash คืออะไรและแตกต่างจากเครื่องหมายดอกจันอย่างไร
ฉันพยายามที่จะเข้าใจความสำคัญของจุดในการทุบตีและวิธีการที่แตกต่างจากดอกจัน ใครบางคนช่วยอธิบายรายละเอียดได้ไหม? ตัวอย่างเช่นอะไรคือความแตกต่างระหว่างcp -ar /foo/. /foo2/และcp -pr /foo/* /foo2/

3
จำประวัติทุบตี "ท้องถิ่น" ในโฟลเดอร์หรือไม่?
ฉันมีสคริปต์ในโฟลเดอร์ที่ฉันใช้กับอาร์กิวเมนต์ที่มีความยาว มีโอกาสใดบ้างที่ฉันสามารถมีประวัติของคำสั่งที่ดำเนินการในไดเรกทอรีนั้นแทนการย้อนกลับไปดูประวัติทั้งหมด?

3
เป็นไปได้หรือไม่ที่จะทำการทดแทนคำสั่ง shell โดยไม่ใช้เชลล์ย่อย?
ฉันมีสถานการณ์ที่เรียกการทดแทนคำสั่งโดยไม่ใช้ subshell ฉันมีสิ่งก่อสร้างเช่นนี้: pushd $(mktemp -d) ตอนนี้ฉันต้องการออกและลบไดเรกทอรีชั่วคราวในครั้งเดียว: rmdir $(popd) อย่างไรก็ตามมันใช้งานไม่ได้เพราะpopdไม่ได้ส่งคืนไดเรกทอรีที่ถูกตอก (มันจะส่งคืนไดเรกทอรีใหม่ที่เป็นปัจจุบันในปัจจุบัน) และเพราะมันถูกทำใน subshell สิ่งที่ต้องการ dirs -l -1 ; popd &> /dev/null จะส่งคืนไดเรกทอรี popped แต่ไม่สามารถใช้เช่นนี้: rmdir $(dirs -l -1 ; popd &> /dev/null) เพราะpopdจะส่งผลกระทบต่อ subshell เท่านั้น สิ่งที่เรียกว่าเป็นความสามารถในการทำเช่นนี้: rmdir { dirs -l -1 ; popd &> /dev/null; } แต่นั่นเป็นไวยากรณ์ที่ไม่ถูกต้อง มันเป็นไปได้ที่จะบรรลุผลนี้หรือไม่? (หมายเหตุ: ฉันรู้ว่าฉันสามารถบันทึกไดเรกทอรีชั่วคราวในตัวแปรได้ฉันพยายามหลีกเลี่ยงความจำเป็นที่จะต้องทำและเรียนรู้สิ่งใหม่ในกระบวนการ!)
11 shell  directory 

2
มีระบบไฟล์ใดบ้างที่ `ln -d` ประสบความสำเร็จ?
จาก manpage สำหรับln : -d, -F, --directory allow the superuser to attempt to hard link directories (note: will probably fail due to system restrictions, even for the superuser) มีไดร์เวอร์ระบบไฟล์ใดบ้างที่สามารถใช้งานได้จริงหรือเป็นเพียงตัวเลือกเดียวmount --bind <src> <dest>? หรือพฤติกรรมแบบนี้ถูกบล็อกโดยเคอร์เนลก่อนที่มันจะเข้าสู่ไดร์เวอร์เฉพาะระบบไฟล์หรือไม่? หมายเหตุ: ฉันไม่ได้วางแผนที่จะทำสิ่งนี้บนเครื่องใด ๆ

4
การเก็บประวัติต่อไดเรกทอรีทำงาน (cf. ต่อเซสชันของเชลล์)
มีวิธีที่จะทำให้คุณสมบัติประวัติของเชลล์สมัยใหม่ถูกกำหนดขอบเขตไปยังเส้นทางหรือไม่? บริบทการทำงานของฉันแบ่งออกเป็นพา ธ บนระบบไฟล์และรูปแบบของกิจกรรมเชลล์เช่นคำสั่งที่ออกซ้ำ ๆ มีแนวโน้มที่จะแตกต่างกันไปในแต่ละโครงการ มันจะดีถ้าฉันสามารถขอบเขตคุณลักษณะประวัติกับคำสั่งที่ออกจากเส้นทางปัจจุบัน (หรือเส้นทางย่อย)

3
ลบไฟล์ทั้งหมดยกเว้นในไดเรกทอรีย่อยที่แน่นอนด้วยการค้นหา
ฉันต้องการที่จะซ้ำลบไฟล์ทั้งหมดไม่สามารถเข้าถึงในขณะที่อยู่ในโฟลเดอร์ยกเว้นไฟล์ทั้งหมดในโฟลเดอร์ย่อยab find a \( -name b -prune \) -o -type f -delete อย่างไรก็ตามฉันได้รับข้อความแสดงข้อผิดพลาด: ค้นหา: การกระทำ -delete เปิดโดยอัตโนมัติ -depth แต่ -prune ไม่ทำอะไรเลยเมื่อ -depth มีผล หากคุณต้องการดำเนินการต่อให้ใช้ตัวเลือก -depth อย่างชัดเจน การเพิ่ม-depthทำให้ไฟล์ทั้งหมดbรวมอยู่ด้วยซึ่งจะต้องไม่เกิดขึ้น ใครรู้วิธีที่ปลอดภัยในการทำงานนี้
11 find  directory  rm 

2
ฉันสามารถเข้าใช้งานบุ๊กมาร์กของ Nautilus ได้หรือไม่?
ฉันทำบุ๊กมาร์กใน Nautilus เช่นลิงก์ทางลัดไปยังบางไดเรกทอรี ฉันต้องการไปcdยังไดเรกทอรีที่ถูกคั่นหน้าใน Nautilus ฉันสงสัยว่าเป็นไปได้หรือไม่

4
เปลี่ยนชื่อไดเรกทอรีย่อยซ้ำ ๆ ที่ตรงกับ regex
Seriesฉันมีเซิร์ฟเวอร์สื่อที่มีโฟลเดอร์ที่เรียกว่า ( /media/Expansion2/Series/) ในนั้นฉันมี (แปลกใจ!) ทีวีซีรีส์ เหล่านี้เป็นเพียงชื่อที่แสดงเช่น/media/Expansion2/Series/The Big Bang Theory/ ภายในโฟลเดอร์ของแต่ละรายการ (และนี่คือปัญหาที่เกิดขึ้น) ฉันมีโฟลเดอร์ซีซัน ขณะนี้ฉันมีการผสมผสานของ 2 อนุสัญญาต่อไปนี้ (รวมถึงอีกสองสามข้อ): /media/Expansion2/Series/The Big Bang Theory/The Big Bang Theory Season 1 /media/Expansion2/Series/The Big Bang Theory/Season 2 Season #ในท้ายที่สุดผมต้องการที่จะเปลี่ยนชื่อโฟลเดอร์ทั้งหมดเพียง เป็น regex ฉันอาจจะพูดอะไรบางอย่างเช่น s/.*(Season \d)/$1 ใช้ได้กับโฟลเดอร์เท่านั้นไม่ใช่ไฟล์ ฉันควรจะพูดถึงว่านี่เป็นโฟลเดอร์ย่อยประมาณ 50+ รายการดังนั้นจึงต้องเริ่มที่/media/Expansion2/Series/ระดับและดูในแต่ละซีรีย์ :)

10
วิธีที่ดีที่สุดในการนับจำนวนไฟล์ในไดเรกทอรีคืออะไร
หากการวิเคราะห์เอาต์พุตlsเป็นอันตรายเพราะสามารถแยกอักขระที่ขี้ขลาด (ช่องว่าง\n, ... ) ออกได้วิธีที่ดีที่สุดที่จะทราบจำนวนไฟล์ในไดเรกทอรีคืออะไร ฉันมักจะพึ่งพาfindเพื่อหลีกเลี่ยงการแยกวิเคราะห์นี้ แต่ในทำนองเดียวกันfind mydir | wc -lจะทำลายด้วยเหตุผลเดียวกัน ตอนนี้ฉันกำลังทำงานกับ Solaris อยู่ แต่ฉันกำลังมองหาคำตอบที่พกพาสะดวกในทุกกรณีและเปลือกหอยที่แตกต่างกันมากที่สุด

4
โปรแกรมสร้างไดเรกทอรีระยะไกลโดยใช้ ssh
ใช้เชลล์สคริปต์ฉันจะสร้างไดเรกทอรีระยะไกลจาก serverA -> serverB ด้วย ssh ได้อย่างไร ฉันสามารถส่งคำสั่งสร้างไดเรกทอรีด้วยคำสั่ง ssh ได้หรือไม่ อย่างไร? โดยทั่วไปฉันต้องการสร้างไดเรกทอรีจากระยะไกลตามวันที่ (เช่น 20110304) หากยังไม่มีอยู่
11 shell  ssh  directory 

3
ฉันจะทราบได้อย่างไรว่ารีโมต NFS กำลังเอ็กซ์พอร์ตไดเร็กทอรีหรือไม่?
ในสคริปต์ของฉันฉันมีสถานะหลายเลเยอร์: ระยะไกลสามารถใช้ได้ (ping) บริการ NFS ระยะไกลเปิดใช้งานอยู่ รีโมต NFS กำลังเอ็กซ์พอร์ตไดเร็กทอรีที่แน่นอน รีโมต NFS ถูกเมาท์ (เมาท์) สำหรับ (2) และ (3) ฉันเชื่อว่าrcpinfoเป็นทางออกที่ดีที่สุด สำหรับ (2) ฉันไม่สามารถหาวิธี จำกัด คิวรีของฉันให้แคบลงไปยังบริการ NFS โดยไม่ต้องเริ่ม subshell (ซึ่งไม่เป็นที่ยอมรับสำหรับแอปพลิเคชันนี้) สำหรับ (3) ฉันไม่แน่ใจว่าข้อมูลนี้สามารถใช้งานได้จากระยะไกล (โดยไม่ต้องsshเข้าร่วม) ฉันกำลังทำงานกับ RHEL 6 และไม่สามารถเข้าถึงโปรแกรมที่ไม่รวมอยู่ในการกระจายมาตรฐาน
11 rhel  directory  nfs  remote 

3
การทำสมนามไฟล์ Symlink ในไดเรกทอรีย่อยโดยไม่เปลี่ยนไดเรกทอรีปัจจุบัน
ดูเหมือนว่าควรเชื่อมโยงไฟล์หนึ่งไฟล์กับไฟล์ใหม่ในไดเรกทอรีย่อย .... โดยไม่ต้องย้ายไดเรกทอรีย่อย แต่สิ่งที่เกี่ยวกับไวยากรณ์นั้นน่างงงวยและตอบโต้กับสิ่งที่ฉันคาดหวัง นี่คือกรณีทดสอบ: mkdir temp cd temp mkdir deploy echo "Contents of the build file!" > deploy/resources.build.php ln -s deploy/resources.build.php deploy/resources.php cat deploy/resources.php #bad symlink นี่เป็นเพียงการสร้าง symlink ที่ใช้งานไม่ได้! ฉันกำลังเรียกใช้สิ่งนี้ในสคริปต์การตั้งค่าสภาพแวดล้อมการสร้างดังนั้นฉันต้องการหลีกเลี่ยงการเปลี่ยนไดเรกทอรีการทำงานปัจจุบันหากเป็นไปได้ ln -s deploy/resources.build.php resources.php cat deploy/resources.php ยังใช้งานไม่ได้เพราะมันสร้าง symlink ในไดเรกทอรีชั่วคราวแทนไดเรกทอรีย่อยปรับใช้ cd deploy ln -s resources.build.php resources.php cd .. ใช้งานได้ แต่ฉันต้องการทราบวิธีการทำโดยไม่ต้องเปลี่ยนไดเรกทอรี …
11 directory  symlink  ln 

4
วิธีการแตกโฟลเดอร์ที่มีชื่อเฉพาะจากไดเรกทอรีแบบเรียกซ้ำให้ลบโฟลเดอร์อื่น
ฉันมีไดเรกทอรีต้นไม้ชนิดนี้ที่ได้จากการขยายไฟล์ zip: x -> y -> z -> run -> ไฟล์และคำสั่งที่นี่ ดังนั้นจึงมี 4 ไดเรกทอรี 3 คนในนั้นเป็นไฟล์ว่างเปล่า (x, y, z) และมีเพียง 1 ไดเรกทอรีย่อยและมีไดเรกทอรีที่ฉันสนใจชื่อ " run " ฉันต้องการย้ายไดเรกทอรี "เรียกใช้" ตัวเอง (รวมถึงทุกอย่างภายใน) ไปยังตำแหน่ง "รูท" ที่ฉันคลายซิป (เช่นที่ "x" อยู่ แต่ไม่ใช่ภายใน "x") สมมติฐาน: มีอยู่โฟลเดอร์ชื่อ "รัน" แต่ผมไม่ทราบว่าหลายไดเรกทอรีผมจะต้อง "ซีดี" จะได้รับไป (อาจจะ 3 (x, y, z) อาจจะเป็น 10 …

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.