คำถามติดแท็ก command-line

คำถามเกี่ยวกับการใช้อินเตอร์เฟสบรรทัดคำสั่ง (CLI)

4
ระบุไฟล์และไดเรกทอรีด้วยคำสั่ง 'ls'
เรียกใช้คำสั่งlsบนไดเรกทอรีปัจจุบันและรับผลลัพธ์: $ ls Applications Documents Library Music Public Desktop Downloads Movies Pictures ฉันต้องการแจกแจงพวกเขาเช่น: 1. Applications 2. Desktop 3. Documents 4. Downloads 5. Library 6. Movies 7. Music 8. Pictures 9. Public สิ่งนี้สามารถทำได้โดยใช้วิธีlessการระดับกลาง ls | less -N วิธีการระบุพวกเขาในทางตรงไปตรงมา?

2
ไม่รวมไฟล์และไดเรกทอรีบางตัวเมื่อทำการลบไฟล์
dataไดเรกทอรีระดับบนสุดของฉันคือ dataมีหลายไดเรกทอรีและไดเรกทอรีเหล่านี้มีไดเรกทอรีย่อย ฉันต้องลบไฟล์และไดเรกทอรีdata/ทั้งหมดยกเว้นไฟล์หลายไฟล์ในบางไดเรกทอรี ตัวอย่างเช่นข้อมูลรวมถึงไดเรกทอรีและ100 101ผมแค่อยากจะให้a.txtและb.txtไฟล์ใน100/และc.txtและd.txtไฟล์ใน101/ขณะที่ลบไฟล์อื่น ๆ ทั้งหมดและไดเรกทอรีในและ100101 ตัวอย่าง: . ├── 100 │ ├── a.txt │ ├── b.txt │ ├── c.txt │ └── d.txt └── 101 ├── a.txt ├── b.txt ├── c.txt └── d.txt ฉันใช้rm -rf !(a.txt|b.txt)คำสั่ง แต่ฉันไม่สามารถใช้คำสั่งนี้สำหรับแต่ละไดเรกทอรีโดยอัตโนมัติ

7
รับ UUID จาก / ระบบไฟล์จากสคริปต์
ฉันจะรับ UUID ของไดรฟ์ข้อมูลที่มี/ระบบไฟล์ได้อย่างไร blkid -o listสิ่งที่ดีที่สุดสำหรับการที่ฉันได้พบว่าวันที่ แต่ผลลัพธ์นี้เป็นมนุษย์อ่านได้และยากที่จะแยกวิเคราะห์ อาจจะมีวิธีที่ดีกว่า ฉันต้องการใช้การจัดการการกำหนดค่าพารามิเตอร์ด้วยเทมเพลตเฉพาะระบบ หมายเหตุเกี่ยวกับblkidgotcha สำหรับผู้ที่อาจนำมาใช้ผลของคำถามของฉันในอนาคต: แคชผลของการทำงานก่อนหน้านี้ที่blkid /etc/blkid.tabนั่นหมายความว่าการทำงานblkidในฐานะผู้ใช้ที่ไม่ใช่รูทในครั้งแรกจะไม่ส่งคืนข้อมูลใด ๆ นอกจากนี้การรันblkidในฐานะผู้ใช้ที่ไม่ใช่รูทหลังจากรันรูทจะส่งคืนข้อมูลเก่า (อาจไม่ถูกต้อง)

4
วิธีหยุดสคริปต์ bash เมื่อเงื่อนไขล้มเหลว
ที่นี่มันแสดงให้เห็นถึงการใช้||และ&&ในบรรทัดเดียวเพื่อเชื่อมต่อการดำเนินการคำสั่ง: ฉันจะตรวจสอบข้อผิดพลาด apt-get ในสคริปต์ทุบตีได้อย่างไร ฉันกำลังพยายามหยุดการประมวลผลสคริปต์หากเงื่อนไขบางอย่างล้มเหลว เช่น false || echo "Obvious error because its false on left" && exit ที่นี่มันพิมพ์Obvious error because its false on the leftและออกจากคอนโซลซึ่งเป็นสิ่งที่ฉันต้องการ true || echo "This shouldn't print" && exit ที่นี่ไม่มีการพิมพ์เสียงสะท้อน แต่exitคำสั่งทำงานได้ดีเช่นคอนโซลถูกปิดไม่ควรexitคำสั่งไม่ทำงานเพราะคำสั่ง echo ทางด้านขวาไม่ได้ถูกดำเนินการ หรือโดยค่าเริ่มต้นข้อความที่ถือว่าเป็นเท็จทางด้านซ้ายของ&&ผู้ประกอบการ? แก้ไข: ฉันควรได้กล่าวถึงก่อนหน้านี้เป้าหมายของฉันคือการสะท้อนข้อผิดพลาดและออกหากไม่ชัดเจน wrt กรณีเฉพาะของฉันในการจับข้อผิดพลาดเมื่อจัดกลุ่มเงื่อนไขโดยใช้ && และ | |, @ bodhi.zazen คำตอบจะช่วยแก้ปัญหา …

2
การเปลี่ยนชื่อไดเรกทอรีจำนวนมากเพื่อย้ายปีตั้งแต่ต้นจนจบ
ฉันกำลังดิ้นรนกับโฟลเดอร์เพลงบางโฟลเดอร์ ฉันเคยตัดสินใจตั้งชื่อตามรูปแบบ: artist - album - year. วันนี้ฉันรู้ว่านี่ไม่ใช่การย้ายที่ฉลาดและตอนนี้ต้องการตั้งชื่อไดเรกทอรีของฉันตามรูปแบบ: year - artist - albumเนื่องจากพวกเขาจะปรากฏขึ้นตามลำดับจากน้อยไปมากเมื่อแสดงรายการ ฉันเริ่มทำการเปลี่ยนชื่อด้วยมือ แต่ด้วยโฟลเดอร์ประมาณ 700 โฟลเดอร์ต้องมีวิธีที่ง่ายกว่า ฉันพยายามใช้gprenameแต่ฉันไม่ค่อยเก่งเรื่อง regex และ bash scripting ... มีใครบ้างที่สามารถช่วยฉันสำรองปลายนิ้วมือที่ยากจนของฉันได้? ตัวอย่างบางส่วน: Aes Dana - Memory Shell - 2004 Anja Schneider & GummiHz - Back To Back (Remixes Part 2) - 2009 จะกลายเป็น 2004 - Aes Dana …

3
ลบไดเร็กทอรีพาเรนต์ (ไม่ว่าง) หากไดเร็กทอรีย่อยที่ระบุว่างเปล่า
ฉันต้องเก็บไดเรกทอรีทั้งหมดที่มีไฟล์ในไดเรกทอรีย่อยที่เฉพาะเจาะจง แต่เพื่อลบส่วนที่เหลือทั้งหมดไดเรกทอรีที่ไดเรกทอรีย่อยว่างเปล่า จะมีความเฉพาะเจาะจงมากขึ้นที่นี่เป็นโครงสร้าง: A | |--------312311 | | | |----Recording | |----a.txt | |----b.txt | | |--------453453 | |----Recording | | | |-------a.mp3 | |----a.txt | |----b.txt | | |--------566532 | |----Recording | |----a.txt | |----b.txt ไดเรกทอรีย่อยอาจมีหรือไม่มีไฟล์ ดังนั้นฉันต้องลบไดเรกทอรีทั้งหมดเช่น '312311' & '566532' และควรมีเพียง 453453 เท่านั้นที่มีข้อมูลทั้งหมดอยู่ในนั้นเพราะมีไฟล์ในโฟลเดอร์ 'Recording' ซึ่งเป็นไดเรกทอรีเฉพาะสำหรับฉัน ฉันเห็นโพสต์จำนวนมาก แต่ลิงก์ไปยังชื่อไฟล์เฉพาะจำนวนมาก ความช่วยเหลือใด ๆ …

2
เทอร์มินัลเข้าสู่โหมดใดเมื่อฉันพิมพ์เครื่องหมายคำพูดเดี่ยว?
เมื่อฉันป้อนเครื่องหมายคำพูดเดี่ยว'ในเทอร์มินัลมันจะไปยังโหมดอื่นและคำสั่งจะไม่ทำงาน โหมดนี้คืออะไรและเมื่อไหร่ที่เราจะใช้มัน? root@sai:~# ' > ls > ' ls : command not found root@sai:~#

1
เปิดเบราว์เซอร์ Ubuntu จากเทอร์มินัล
คำถามง่าย ๆ : คุณเปิด Ubuntu Internet Browser จาก Terminal ได้อย่างไร ฉันกำลังใช้คอมพิวเตอร์ผ่านเซสชัน X-forwarded และจำเป็นต้องค้นหาคำสั่งเพื่อเปิดเบราว์เซอร์ Ubuntu นี่ไม่ใช่เบราว์เซอร์เริ่มต้นของฉันดังนั้นจึงsensible-browserไม่เปิด ฉันเหนื่อย: browser ubuntu-browser gnome-browser sensible-browser brow* พวกเขาทั้งหมดกลับมาCommand not found,ยกเว้นsensible-browserซึ่งเปิดโครเมี่ยม

5
วิธีพิมพ์ค่าในไฟล์ข้อความไปยังไฟล์คอลัมน์โดยใช้เชลล์สคริปต์
ฉันมี output.txt จากการรันเชลล์สคริปต์ดังนี้: abc.txt errorstatus1 Fri Nov 11 02:00:09 2016 def.txt errorstatus2.txt Sat Nov 12 03:00:09 2016 ไฟล์ข้อความมีหลายรายการทีละบรรทัดในลักษณะเดียวกัน ฉันต้องการพิมพ์ค่าเหล่านี้ลงในคอลัมน์: ชื่อไฟล์, สถานะและการประทับเวลาดังนี้: Filename Status Timestamp abc.txt errorstatus1 Fri Nov 11 02:00:09 2016 def.txt errorstatus2 Sat Nov 12 03:00:09 2016


3
การกำหนดเฉพาะส่วนของสตริงให้กับตัวแปรใน bash
ฉันได้รับ filepath แบบสัมบูรณ์จากผู้ใช้และฉันต้องการสร้างตัวแปรที่จะเป็นสตริงที่จะไม่รวมเฉพาะสององค์ประกอบแรกของเส้นทางของไฟล์ แต่ไม่มีการพิมพ์หรืออะไรก็ตาม ตัวอย่างเช่นพา ธ สัมบูรณ์อาจเป็น: /home/myusername/folder1/folder2/folder3 และมันถูกบันทึกใน "target_path" และฉันต้องการให้ "mydir" เป็นเพียง: /folder1/folder2/folder3 ฉันลองใช้คำสั่ง cut ด้วยวิธีที่ต่างกัน แต่ไม่ประสบความสำเร็จ

3
ฉันจะติดตามเวลาจากบรรทัดคำสั่งได้อย่างไร
ฉันกำลังมองหาคำสั่งเพื่อติดตามเวลา ฉันจินตนาการถึงเวิร์กโฟลว์ต่อไปนี้: เรียกใช้คำสั่ง ... ทำอย่างอื่น ... กลับไปที่หน้าต่างเทอร์มินัลแล้วหยุดคำสั่ง ในฐานะที่เป็นเอาท์พุทที่คุณได้รับเวลาที่ผ่านไประหว่าง 3 และ 1

2
วิธี tar.gz ไฟล์ที่มีขนาดใกล้เคียงกันเป็นหลายไฟล์ในคลังเก็บหลายไฟล์ด้วยขนาดที่ จำกัด
ฉันใช้ Ubuntu 16.04 ฉันมีโฟลเดอร์ที่มีไฟล์ข้อความจำนวนมาก (เกือบ 12k) ฉันต้องอัปโหลดพวกเขาทั้งหมดไปยังเว็บไซต์ที่ยอมรับการ.tar.gzอัปโหลดแล้วคลายบีบอัดโดยอัตโนมัติ แต่มีขีด จำกัด 10MB (10,000KB) ต่อไฟล์ (ดังนั้นโดยเฉพาะอย่างยิ่งแต่ละไฟล์จะต้องแตกไฟล์ด้วยตัวเอง) หากฉันtar.gzไฟล์เหล่านี้ทั้งหมดไฟล์ที่ได้จะมีขนาดประมาณ 72MB สิ่งที่ฉันต้องการทำคือการสร้าง.tar.gzไฟล์แปดไฟล์แต่ละขนาด / มิติ (อย่างเคร่งครัด) มีขนาดเล็กกว่า 10,000KB อีกวิธีหนึ่งอาจสันนิษฐานได้ว่าไฟล์ทั้งหมดข้างต้นมีขนาดประมาณเดียวกันดังนั้นฉันต้องการสร้าง.tar.gzไฟล์แปดไฟล์โดยมีจำนวนไฟล์เท่ากัน ฉันจะทำงานสองอย่างใดอย่างหนึ่งเหล่านี้ได้อย่างไร ฉันใช้งานได้ดีกับโซลูชันที่เกี่ยวข้องกับ GUI, CLI หรือการเขียนสคริปต์ ฉันไม่ได้มองหาความเร็วที่นี่ฉันต้องการมันเสร็จแล้ว

2
มีคำสั่งใน Gnome-Terminal หรือเชลล์ tabbable ใด ๆ เพื่อเปิดแท็บใหม่หรือไม่?
ฉันไม่ได้มองหาแป้นพิมพ์ลัด แต่ฉันต้องการคำสั่ง: หน้าต่างใหม่ แท็บใหม่ ปิดแท็บหรือหน้าต่างปัจจุบัน ขยายหน้าต่างเชลล์ให้ใหญ่สุด ย่อขนาดหน้าต่างเชลล์ ย้ายเชลล์ไปยังพื้นที่ทำงานอื่น สลับแท็บ และโดยทั่วไปอะไรเช่นนี้ โปรดจำไว้ว่า; ฉันไม่ต้องการทางลัด แต่เป็นคำสั่งจริง เหตุผลของเรื่องนี้คือเพื่อให้ฉันสามารถใช้ฟังก์ชั่นนามแฝง

2
อะไรคือข้อแตกต่างระหว่าง ls [13] และ ls {1,3}
touch inv{1..3}.txtฉันสร้างสามไฟล์ในไดเรกทอรีของฉันโดยใช้คำสั่ง ตอนนี้ฉันใช้คำสั่งสองคำสั่งและเอาต์พุตของพวกเขาก็เหมือนกันมาก คำสั่งทั้งสองนั้นคือls inv[13].txtและls {1,3}.txt. แล้วสองคนนี้ต่างกันอย่างไร วงเล็บเหลี่ยมแตกต่างกันอย่างไรเมื่อเปรียบเทียบกับเครื่องมือจัดฟัน นอกจากนี้ฉันยังได้ค้นหาคำว่า "linux [.. ]" แต่ไม่พบอะไรเลยฉันจึงรู้ได้ว่าสิ่งเหล่านี้เรียกว่าอะไรในคำศัพท์ของ linux? ขอบคุณ

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