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

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

3
มันเป็นส่วนหนึ่งของมาตรฐานใด ๆ (เช่น POSIX) ไฟล์ระบบนั้นควรเป็นตัวพิมพ์เล็กหรือไม่?
บริษัท ของฉันขายแอปพลิเคชันที่มีชื่อแบรนด์เป็นแบบตัวพิมพ์ผสมเช่น "ApplicationName" ตัวติดตั้งของแอปพลิเคชันจะสร้างพา ธ และชื่อไฟล์ทั้งหมดในมาตรฐานนี้ เช่นไดเร็กตอรี่หลักคือ/opt/ApplicationNameไฟล์ init ถูกเรียกใช้ApplicationNameดังนั้นฉันต้องเรียกใช้service ApplicationName statusและอื่น ๆ สำหรับฉันนี่เป็นการประชุมที่มีเหตุผลทั้งหมดและฉันรู้สึกว่าไฟล์และไดเรกทอรีควรเป็นตัวพิมพ์เล็ก (มีแอปพลิเคชั่นอื่น ๆ เช่น MySQL ซึ่งมีไฟล์และ dirs ทั้งหมดถูกเรียกmysqlใช้แม้กระทั่งแอปพลิเคชันเช่น Apache และ Tomcat อักษรตัวพิมพ์ใหญ่). หากฉันยกเป็นรายงานข้อผิดพลาดฉันต้องการที่จะโต้แย้งที่แข็งแกร่งกว่าเพียงแค่ "ฉันคิดว่ามันผิด" ดังนั้นมันจึงเป็นไปตามมาตรฐาน POSIX ที่ไฟล์ระบบแบบนี้ควรเป็นตัวพิมพ์เล็ก?

7
วิธีพกพาเพื่อรับเส้นทางที่สมบูรณ์ของสคริปต์
เป็นวิธีแบบพกพาสำหรับสคริปต์ (zsh) เพื่อกำหนดเส้นทางที่แน่นอนคืออะไร? บน Linux ฉันใช้สิ่งที่ชอบ mypath=$(readlink -f $0) ... แต่นี่ไม่ใช่แบบพกพา (เช่นreadlinkในดาร์วินไม่รู้จัก-fธงและไม่มีอะไรเทียบเท่า) (เช่นเดียวกับการใช้readlinkสิ่งนี้คือเป็นที่ยอมรับว่าเป็นแฮ็คที่ดูคลุมเครือ) อะไรคือวิธีพกพาที่มากขึ้น?


7
ถือว่าเป็นแนวปฏิบัติที่ดีที่สุดที่จะไม่ใช้อักษรตัวใหญ่ในการตั้งชื่อไฟล์หรือไม่?
มีคนบอกว่าคุณไม่ควรใช้ช่องว่างในการตั้งชื่อไฟล์ Unix มีเหตุผลที่ดีที่จะไม่ใช้อักษรตัวพิมพ์ใหญ่ในชื่อไฟล์ (เช่นFile_Name.txtvs. file_name.txt) หรือนี่เป็นเพียงเรื่องของการตั้งค่าส่วนตัว?
28 filenames 

3
แยกไฟล์ทีละบรรทัดและควบคุมส่วนขยายของไฟล์ที่ได้
มีคำสั่งมาตรฐานสำหรับการแยกไฟล์ - แยก ตัวอย่างเช่นหากฉันต้องการแยกไฟล์คำในหลาย ๆ บรรทัดของ 10,000 บรรทัดฉันสามารถใช้: split -dl 10000 words wrd และมันจะสร้างไฟล์หลายไฟล์ในรูปแบบ wrd.01, wrd.02 และอื่น ๆ แต่ฉันต้องการมีส่วนขยายเฉพาะสำหรับไฟล์เหล่านั้น - ตัวอย่างเช่นฉันต้องการรับไฟล์ wtd.01.txt, wrd.02.txt มีวิธีทำหรือไม่?
28 shell  filenames  split 

2
เป็นความจริงหรือไม่ที่ tarball สามารถเปลี่ยนตำแหน่งที่แตกไฟล์ได้โดยไม่คำนึงถึงคำสั่งที่ใช้เพื่อแตกไฟล์
ฉันมีเพื่อนร่วมงานที่บอกว่าคุณต้องระวังการสกัด tarballs เพราะพวกเขาสามารถทำการเปลี่ยนแปลงที่คุณไม่รู้ ฉันคิดเสมอว่า tarball เป็นเพียงลำดับชั้นของไฟล์บีบอัดดังนั้นหากคุณแยกไฟล์เป็น / tmp / example / อาจไม่สามารถแอบดูไฟล์ใน / etc / หรืออะไรทำนองนั้น
27 filenames  tar 

2
ผลกระทบด้านความปลอดภัยของการเรียกใช้ Perl - '' …
เห็นได้ชัดว่ากำลังทำงาน: perl -n -e 'some perl code' * หรือ find . ... -exec perl -n -e '...' {} + (เช่นเดียวกับ-pแทน-n) หรือ perl -e 'some code using <>' * มักจะพบในหนึ่ง liners โพสต์บนเว็บไซต์นี้มีผลกระทบด้านความปลอดภัย ตกลงคืออะไร? จะหลีกเลี่ยงได้อย่างไร

5
Glob พร้อมลำดับตัวเลข
ฉันมีรายการไฟล์ pdf นี้ในไดเรกทอรี: c0.pdf c12.pdf c15.pdf c18.pdf c20.pdf c4.pdf c7.pdf c10.pdf c13.pdf c16.pdf c19.pdf c2.pdf c5.pdf c8.pdf c11.pdf c14.pdf c17.pdf c1.pdf c3.pdf c6.pdf c9.pdf ฉันต้องการต่อสิ่งเหล่านี้โดยใช้ ghostscript ตามลำดับตัวเลข (คล้ายกับสิ่งนี้): gs -q -sPAPERSIZE=a4 -dNOPAUSE -dBATCH -sDEVICE=pdfwrite -sOutputFile=out.pdf *.pdf แต่ลำดับการขยายตัวของเชลล์ไม่ได้ทำซ้ำลำดับตามธรรมชาติของตัวเลข แต่ตามลำดับตัวอักษร: $ for f in *.pdf; do echo $f; done c0.pdf c10.pdf c11.pdf …

11
ดำเนินการเป็น. test แทน. / Test
หากว่าฉันอยู่ในโฟลเดอร์เดียวกับไฟล์ที่เรียกใช้งานได้ฉันจะต้องพิมพ์สิ่งนี้เพื่อเรียกใช้งาน: ./file ฉันไม่ต้องการพิมพ์/เพราะ/ยากสำหรับฉันที่จะพิมพ์ มีวิธีที่ง่ายกว่าในการเรียกใช้ไฟล์หรือไม่? เป็นการดีที่จะมีไวยากรณ์ง่ายๆเช่น: .file หรืออย่างอื่นนอกจากง่ายกว่าต้องใส่/ตัวอักษรตรงนั้น อาจมีวิธีใส่บางอย่างใน/binไดเรกทอรีหรือสร้างนามแฝงสำหรับล่ามเพื่อที่ฉันจะได้ใช้: p file


5
พิมพ์เอาต์พุตไปยัง 3 คอลัมน์แยกกัน
MYPATH=/var/www/html/error_logs/ TOTALFILE=$(ls $MYPATH* | wc -l) FILETIME=$(stat --format=%y $MYPATH* | head -5 | cut -d'.' -f1) FILE=$(ls -1tcr $MYPATH* | head -5 | rev | cut -d/ -f1 | rev) TOPLINE=$(head -1 $MYPATH* | grep -Po '".*?"' | head -5) ฉันจะพิมพ์ข้อมูล 5 ไฟล์นี้ลงในคอลัมน์ด้วยส่วนหัวได้อย่างไร? FILE CREATED TIME | FILE NAME | …

3
จะเปลี่ยนชื่อไฟล์เป็น .. (dot dot) ได้อย่างไร?
เห็นได้ชัดว่าคุณสามารถเปลี่ยนชื่อไฟล์... ถ้าฉันบ้าฉันจะเปลี่ยนชื่อไฟล์เป็น..หรือ.อย่างไร ชื่อไฟล์ดังกล่าวได้รับอนุญาตหรือไม่ Backslash ดูเหมือนจะไม่ปิดการใช้งานความหมายพิเศษของจุด: $ mv test \. mv: `test' and `./test' are the same file

9
คลิปบอร์ดสำหรับคัดลอกและวางไฟล์ในบรรทัดคำสั่ง?
ใน Bash สมมติว่าฉันไปที่ไดเรกทอรีแล้วไดเรกทอรีอื่น ฉันต้องการคัดลอกไฟล์จากไดเรกทอรีแรกไปยังไดเรกทอรีที่สอง แต่ไม่ต้องระบุชื่อพา ธ แบบยาวของพวกเขา มันเป็นไปได้? โซลูชันชั่วคราวของฉันคือใช้/tmpเป็นสถานที่ชั่วคราวเพื่อเก็บสำเนาของไฟล์ cp myfile /tmpเมื่อฉันอยู่ในไดเรกทอรีแรกและจากนั้นcp /tmp/myfile .เมื่อฉันอยู่ในไดเรกทอรีที่สอง แต่ฉันอาจตรวจสอบว่าไฟล์จะเขียนทับสิ่งใด ๆ/tmpหรือไม่ มีบางสิ่งที่คล้ายกับคลิปบอร์ดสำหรับคัดลอกและวางไฟล์หรือไม่?

3
shellcheck ไม่แนะนำให้ใช้ basename: ทำไม
ฉันกำลังพยายามออกshellcheck ฉันมีบางอย่างเช่นนั้น basename "${OPENSSL}" และฉันได้รับคำแนะนำต่อไปนี้ Use parameter expansion instead, such as ${var##*/}. จากมุมมองจริงฉันไม่เห็นความแตกต่าง $ export OPENSSL=/opt/local/bin/openssl $ basename ${OPENSSL} openssl $ echo ${OPENSSL##*/} openssl เนื่องจากbasenameเป็นข้อมูลจำเพาะของ POSIXฉันจึงไม่มีเหตุผลว่าทำไมจึงควรเป็นวิธีปฏิบัติที่ดีที่สุด คำใบ้ใด ๆ

6
การเพิ่มข้อความไปยังชื่อไฟล์ก่อนที่จะขยาย
ฉันต้องการที่จะเพิ่มข้อความในตอนท้ายของชื่อไฟล์ แต่ก่อนที่จะขยาย ตอนนี้ฉันกำลังพยายาม for f in *.shp; do echo $f_poly; done ผลลัพธ์คือ Quercus_acutifolia.shp_poly Quercus_agrifolia.shp_poly Quercus_corrugata.shp_poly Quercus_cortesii.shp_poly Quercus_costaricensis.shp_poly Quercus_havardii.shp_poly Quercus_hemisphaerica.shp_poly Quercus_kelloggii.shp_poly Quercus_knoblochii.shp_poly Quercus_laceyi.shp_poly ฉันอยากให้มันเป็น Quercus_acutifolia_poly.shp Quercus_agrifolia_poly.shp Quercus_corrugata_poly.shp Quercus_cortesii_poly.shp Quercus_costaricensis_poly.shp Quercus_havardii_poly.shp Quercus_hemisphaerica_poly.shp Quercus_kelloggii_poly.shp Quercus_knoblochii_poly.shp Quercus_laceyi_poly.shp
25 bash  rename  filenames 

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