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

ชื่อไฟล์เป็นชื่อที่ใช้เพื่อระบุไฟล์ที่ไม่ซ้ำกันในระบบไฟล์ที่กำหนด

1
ทำไม getfacl จึงลบชื่อพา ธ / ชื่อพา ธ สัมบูรณ์ออก
ฉันอยู่ท่ามกลางการเรียนรู้เกี่ยวกับ ACL สำหรับ CentOS / Red Hat 6; เมื่อฉันรันgetfaclโดยใช้พา ธ สัมบูรณ์ฉันจะได้ผลลัพธ์ที่: getfacl: การลบ '/' นำหน้าจากชื่อพา ธ สัมบูรณ์ ทำไมต้องทำเช่นนี้? คุณจะต้องใช้ปุ่ม-pหรือ--absolute-namesสวิตช์ในสถานการณ์ใด หนังสือของฉันโดย Wale Soyinka และ Michael Jang ไม่ได้เอ่ยถึงเรื่องนี้เลยฉันไม่เห็นเบาะแสใด ๆ ในหน้า man และดูเหมือนว่าฉันจะไม่พบไซต์ใด ๆ ที่ตอบรับคำเตือนนี้โดยตรง
10 linux  filenames  acl 

2
จัดการชื่อไฟล์ piped จากคำสั่ง find
ฉันค่อนข้างใหม่กับ Bash และฉันพยายามทำบางสิ่งที่บนพื้นผิวนั้นค่อนข้างตรงไปตรงมา - ลองค้นหาลำดับชั้นของไดเรกทอรีเพื่อรับไฟล์ * .wma ทั้งหมดไปป์ที่เอาต์พุตไปยังคำสั่งที่ฉันแปลงเป็น mp3 และ บันทึกไฟล์ที่แปลงเป็น. mp3 ฉันคิดว่าคำสั่งควรมีลักษณะดังต่อไปนี้ (ฉันได้ละทิ้งคำสั่งการแปลงเสียงและฉันใช้ echo แทนภาพประกอบ): $ find ./ -name '*.wma' -type f -print0 | xargs -0 -I f echo ${f%.*}.mp3 ตามที่ฉันเข้าใจแล้ว -print0 arg จะให้ฉันจัดการกับชื่อไฟล์ที่มีช่องว่าง ฉันคาดหวังว่า (เนื่องจาก xargs) ว่าแต่ละพา ธ ไฟล์จาก find ถูกดักจับใน f และการใช้ซับสตริงจับคู่ / ลบจากจุดสิ้นสุดของสตริงนั้นฉันควรจะสะท้อนพา ธ ไฟล์ดั้งเดิมด้วย mp3 …

2
อักขระพิเศษในชื่อไฟล์ (\ # 033OA)
ฉันมีปัญหาเล็กน้อยกับข้อผิดพลาดปากแข็งมากระหว่าง rsync มันเกิดจากไฟล์ที่มีตัวละครพิเศษในชื่อไฟล์ มีคนอื่นมาบ้าง แต่ฉันสามารถแยกแยะได้ด้วยการเปลี่ยนใจเลื่อมใสในการเข้ารหัสของชื่อไฟล์ อย่างไรก็ตามไฟล์นี้ฉันไม่สามารถหาได้ ดังนั้นนี่คือสิ่งที่ rsync พูดว่า: ../.\#033OA.tex.pyD0MB" failed: No such file or directory (2) สิ่งแรกที่สังเกตได้คือรหัสอักขระไม่สามารถเป็นเลขฐานสิบหกหรือฐานแปดได้ดังนั้นฉันจึง googled และพบสิ่งนี้เท่านั้น ดังนั้นมันอาจเป็นCURSOR UPตัวละคร (หรือไม่ก็ได้) ฉันได้พยายาม ls -la *`printf '\033OA'`* ไม่มีประโยชน์ ฉันได้ลองไปป์ไลน์เอาต์พุตของ ls ของไดเร็กทอรีนั้นแล้วว่าodไม่มีประโยชน์ ฉันจะทำอะไรได้อีก หรือฉันกำลังมองหาตัวละครอะไรอยู่? ขอบคุณ


7
ค้นหาไฟล์ตามความยาวของชื่อไฟล์
ฉันต้องการค้นหาไฟล์ทั้งหมดตามความยาวของชื่อไฟล์ ตัวอย่างเช่นถ้าฉันต้องการค้นหาไฟล์ที่มีความยาว 1 เช่นa.go, b.go. ฉันใส่: grep '.\{1\}' file แต่มันไม่ทำงาน ฉันสามารถใช้คำสั่งอะไรเพื่อค้นหาไฟล์ตามความยาวชื่อไฟล์

2
ลบคำนำหน้าจากชื่อไฟล์
ฉันมีไฟล์มากมายดังนี้: 04602635_b0294.DAT20120807164534 04602637_b0297.DAT20120807164713 04602638_b0296.DAT20120807164637 04602639_b0299.DAT20120807164819 04602640_b0298.DAT20120807164748 04602641_b0300.DAT20120807164849 04602650_b0301.DAT20120807164921 04602652_b0302.DAT20120807164956 ฉันต้องเปลี่ยนชื่อพวกเขาเพื่อไม่รวมคำนำหน้า มันต้องมีหน้าตาแบบนี้ .. b0294.DAT20120807164534 b0297.DAT20120807164713 b0296.DAT20120807164637 b0299.DAT20120807164819 b0298.DAT20120807164748 b0300.DAT20120807164849 b0301.DAT20120807164921 b0302.DAT20120807164956 แก้ไข ฉันลืมที่จะเพิ่มว่าฉันใช้โซลาริส


2
ลบไฟล์ที่ไม่มีสตริงในชื่อ
ฉันต้องการลบไฟล์ที่ไม่มีสตริง '999' (ไม่มี '') ในชื่อของพวกเขา ฉันเหนื่อย: grep -vlr 999 . | xargs -0 rm -f -- find . -print0 | grep --null-data -v 999 | xargs -0 rm -- แต่ไม่มีใครทำงานเลย ฉันใช้ macOS Sierra โดยใช้ bash: 3.2.57
9 bash  osx  filenames  rm 

2
ดาวน์โหลดไฟล์ที่มีชื่อจริงโดย wget
ฉันพยายามที่จะดาวน์โหลดไฟล์ผ่าน HTTP wgetจากเว็บไซต์โดยใช้ เมื่อฉันใช้: wget http://abc/geo/download/?acc=GSE48191&format=file index.html?acc=GSE48191ฉันจะได้รับเฉพาะไฟล์ที่เรียกว่า เมื่อฉันใช้: wget http://abc/geo/download/?acc=GSE48191&format=file -o asd.rpm ฉันได้รับasd.rpmแต่ฉันต้องการดาวน์โหลดด้วยชื่อจริงและไม่ต้องการเปลี่ยนชื่อของไฟล์ที่ดาวน์โหลดด้วยตนเอง
9 filenames  wget 

2
เป็นไปได้ที่จะปลอมเส้นทางเฉพาะสำหรับกระบวนการหรือไม่?
ฉันกำลังพยายามเรียกใช้ ADB บนเซิร์ฟเวอร์ linux ที่มีผู้ใช้หลายคนที่ฉันไม่ได้รูท (เล่นกับ android emulator ของฉัน) ภูต adb เขียนบันทึกของระบบไปยังแฟ้ม/tmp/adb.logซึ่งน่าเสียดายที่ดูเหมือนว่าจะยากเขียนเป็น ADB และสถานการณ์เช่นนี้จะไม่เกิดการเปลี่ยนแปลง ดังนั้น adb cannot open '/tmp/adb.log': Permission deniedเป็นความล้มเหลวในการทำงานให้เกิดข้อผิดพลาดที่เห็นได้ชัด: ไฟล์นี้สร้างโดยผู้ใช้รายอื่นและ/tmpมีบิตติดอยู่ ถ้าฉันเริ่ม adb ด้วยadb nodaemon serverการทำให้มันเขียนถึง stdout จะไม่มีข้อผิดพลาดเกิดขึ้น (ฉันยังตั้งค่าพอร์ตเป็นค่าที่ไม่ซ้ำกันเพื่อหลีกเลี่ยงความขัดแย้ง) คำถามของฉันคือ: มีวิธีทำให้ ADB เขียนไปยังไฟล์อื่นกว่า/tmp/adb.log? โดยทั่วไปแล้วจะมีวิธีสร้าง symlink เฉพาะกระบวนการหรือไม่ ฉันต้องการที่จะเปลี่ยนเส้นทางการเข้าถึงไฟล์ทั้งหมดเพื่อที่จะบอกว่าแฟ้ม/tmp/adb.log~/tmp/adb.log อีกครั้งผมไม่ได้รากบนเซิร์ฟเวอร์ดังนั้นchroot, mount -o rbindและchmodไม่ได้เป็นตัวเลือกที่ถูกต้อง ถ้าเป็นไปได้ฉันไม่ต้องการแก้ไขแหล่งที่มาของ ADB แต่แน่นอนว่าถ้าไม่มีวิธีแก้ไขปัญหาอื่น ๆ ฉันจะทำเช่นนั้น ป.ล. สำหรับกรณี ADB …
9 linux  filenames  adb 

1
(เพราะเหตุใด) การใช้ ls -A ในการแสดงรายการไฟล์ที่ซ่อนไม่ดีหรือไม่
ฉันต้องการแสดงรายการทุกไฟล์รวมถึงไฟล์ที่ซ่อนอยู่ในไดเรกทอรีปัจจุบัน ฉันไม่ต้องการรวมไดเรกทอรี (.. ) และไดเรกทอรี (.) ปัจจุบัน ฉันพบสิ่งนี้: วิธีการ glob ทุกไฟล์ที่ซ่อนยกเว้นไดเรกทอรีปัจจุบันและผู้ปกครอง ในตอนท้ายบางคนกล่าวว่าls -Aเป็นวิธีที่จะไป อย่างไรก็ตามดูเหมือนว่าจะทำงาน มีอะไรผิดปกติกับls -A?
9 ls  filenames 

6
ใช้ basename เพื่อวิเคราะห์รายการพา ธ ที่เก็บไว้ในไฟล์
ฉันใช้ Mac OSX และพยายามใช้บรรทัดคำสั่งเพื่อค้นหาจำนวนไฟล์ที่ฉันมีด้วยชื่อเดียวกัน ฉันพยายามใช้คำสั่งต่อไปนี้: find ~ -type f -name "*" -print | basename | sort | uniq -d > duplicate_files มันไม่ทำงาน! เมื่อฉันทำต่อไปนี้: find ~ -type f -name "*" -print > duplicate_files จากนั้น Duplicate_files จะมีพา ธ ของไฟล์ทั้งหมดของฉัน ดังนั้นฉันคิดว่าปัญหาเกิดขึ้นกับbasename- ไม่ยอมรับอินพุตมาตรฐาน ฉันลองทำสิ่งต่อไปนี้: basename $(find ~ -type f -name "*" -print) > duplicate_files …

3
เลือกชื่อไฟล์ Unicode ใน Bash
ตกลง; สมมติว่าฉันอยู่ใน Bash และฉันมีหลายไฟล์ในโฟลเดอร์ หลายคนมีชื่อfile☠☡☢☣.txtที่☠☡☢☣เริ่มต้นด้วยตัวอักษร unicode untypable บ้า ฉันจะอ้างถึงหนึ่งในนั้นได้อย่างไร กดแท็บเสร็จสมบูรณ์อัตโนมัติเท่านั้นfileแล้วต้องการให้คุณพิมพ์ตัวละครบ้า มีวิธีบอกทุบตี "เลือกอันที่ 3 ในรายการที่คุณเพิ่งให้ฉัน"?

2
คุณจะสร้างไฟล์ด้วยชื่อว่างได้อย่างไร
ฉันไม่รู้ว่า แต่ฉันสร้างไฟล์ด้วยชื่อไฟล์เปล่าฉันสงสัยว่ามีช่องว่างอยู่ที่นั่น (ฉันจะอธิบายว่าทำไมในตอนท้าย): chaouche@karabeela /mnt/ubuntu/storage $ ls total 352K drwx------ 3 chaouche chaouche 4.0K Feb 12 11:00 drwxr-xr-x 4 chaouche chaouche 4.0K Apr 14 23:13 AUDIO drwxr-xr-x 5 chaouche chaouche 4.0K Jul 20 22:25 BACKUPS -rw-r--r-- 1 chaouche chaouche 310K Jun 15 13:00 cv_yassine_chaouche_2012.pdf drwxr-xr-x 2 chaouche chaouche 4.0K Jun …

2
คุณจะย้าย (หรือคัดลอก) ไฟล์ทั้งหมดไปยังไดเรกทอรีที่มีคำนำหน้าชื่อไฟล์ได้อย่างไร
ใช้ Bash ดังนั้นสมมติว่าฉันมีไฟล์หลายไฟล์วางอยู่ในไดเรกทอรีหลัก~/srcฉันต้องการคว้าไฟล์ทั้งหมดที่ตรงกับคำต่อท้ายและย้าย (หรือคัดลอก) ไปยัง~/distไดเรกทอรี สมมติว่าเพื่อจุดประสงค์นี้ว่าชื่อไฟล์ทั้งหมดมีแบบแผนการตั้งชื่อนี้: <filename_prefix>.<filename_suffix> ฉันพบว่านี่เป็นวิธีที่รวดเร็วในการรับไฟล์ทั้งหมดโดยเฉพาะfilename_suffixและวางไว้ในโฟลเดอร์ dist: mkdir ~/dst find source -name "*.xxx" -exec mv -i {} -t ~/dst \; ตอนนี้ขั้นตอนต่อไป ... ฉันจะใช้ผลลัพธ์การค้นหาในกรณีนี้filenameและใช้filename_prefixเพื่อสร้างไดเรกทอรีที่มีชื่อเดียวกัน~/distแล้วย้าย (หรือคัดลอก) ไฟล์ทั้งหมดที่มีคำนำหน้านั้นลงในไดเรกทอรีที่เหมาะสมได้อย่างไร mkdir ~/dst find source -name "*.xrt,*.ini,*.moo" -exec mv -i {} -t ~/dst \; โดยพื้นฐานแล้วฉันจะเปลี่ยนคำสั่งด้านบนได้อย่างไร (หรืออาจใช้คำสั่งอื่น) เพื่อสร้างโครงสร้างเช่นนี้ (ขาออก) ~/dist/people/people.xrt ~/dist/games/games.xrt ~/dist/games/games.moo ~/dist/games/games.ini ~/dist/monkeys/monkeys.ini ~/dist/monkeys/monkeys.xrt …

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