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

Unix เป็นระบบปฏิบัติการคอมพิวเตอร์แบบหลายผู้ใช้ที่พัฒนาขึ้นในปี 2512 โดยกลุ่มพนักงานของ AT&T ที่ Bell Labs

4
ลบไฟล์ทั้งหมดยกเว้นไฟล์บางไฟล์จากโฟลเดอร์ใน Unix [ซ้ำ]
ซ้ำเป็นไปได้: วิธีลบไฟล์ทั้งหมดในไดเรกทอรียกเว้นบางไฟล์? ฉันมักจะประสบปัญหานี้ ฉันมีชุดไฟล์ในโฟลเดอร์และต้องการลบทั้งหมดยกเว้นบางไฟล์ ตัวอย่างเช่น: ฉันมีชื่อไฟล์ตามวันที่สร้าง (เช่น 11-1-11.tar, 10-1-11.tar เป็นต้น) ตอนนี้ฉันต้องการลบไฟล์เช่น 10-1-11, 9-1-11 และอื่น ๆ แต่ไม่ใช่ไฟล์อื่น ๆ โดยทั่วไปฉันต้องการบังคับใช้สิ่งที่ควรลบและสิ่งที่ควรเก็บไว้ ฉันจะทำสิ่งนี้ได้อย่างไร
2 unix  rm 


1
TCP / IP สำหรับ windows และ unix
การใช้โปรโตคอลใน TCP / IP เหมือนกันสำหรับทุกแพลตฟอร์มหรือมีข้อกำหนดเฉพาะสำหรับแต่ละแพลตฟอร์มหรือไม่? ฉันมีคำถามนี้เมื่อฉันอ่าน Windows และ UNIX ใช้ฟังก์ชั่นที่แตกต่างกันในการสื่อสารกับโปรโตคอลเดียวกันดังนั้นหากฉันจะอ่านเกี่ยวกับโปรโตคอลเช่นรายละเอียดส่วนหัวบริการ ฯลฯ ฉันต้องกังวลเกี่ยวกับรายละเอียดเฉพาะของแพลตฟอร์มบ้างไหม ?
2 windows  unix  tcpip 

1
ย้ายโปรแกรมที่กำลังเรียกใช้ไปยังหน้าจอ
เป็นไปได้หรือไม่ที่จะย้ายโปรแกรมที่เริ่มต้นไปที่screen/ แล้วtmux? ฉันต้องการมีสิ่งต่อไปนี้: program; ^Z screen; fg; ฉันรู้ว่าข้างต้นใช้งานไม่ได้ แต่มีวิธีที่จะทำให้สำเร็จหรือไม่

1
สร้างลำดับของตัวเลขจากอินพุตที่มนุษย์สามารถอ่านได้
ในทุบตีฉันมีโปรแกรมที่แสดงรายการตัวเลือกของไฟล์ที่จะดาวน์โหลดจากนั้นให้ผู้ใช้เลือกบางไฟล์ ฉันต้องการให้ผู้ใช้พิมพ์สิ่งที่ต้องการ1-6,8,11-12ดาวน์โหลดไฟล์ 1, 2, 3, 4, 5, 6, 8, 11 และ 12 ฉันจะสร้างลำดับของตัวเลขได้อย่างไร (เพื่อใส่forวนซ้ำ ) จากอินพุตที่มนุษย์อ่านได้ประเภทนี้หรือไม่
2 bash  unix 

1
ค้นหาและคัดลอกสคริปต์อย่างง่ายสำหรับ linux [ปิด]
ฉันค่อนข้างใหม่สำหรับสคริปต์ใน Linux สิ่งที่ฉันพยายามจะได้คือสคริปต์ง่ายๆที่ค้นหาไฟล์ด้วยชื่อที่ถูกต้องจากนั้นคัดลอกไฟล์นั้นไปยังโฟลเดอร์อื่น ดังนั้นโดยพื้นฐานแล้วมันควรจะทำงานเหมือน "./findandcopy [filename]" นี่คือสิ่งที่ฉันได้รับ: #!/bin/sh ARGS=1 E_BADARGS=65 E_NOFILE=66 if [ $# -ne "$ARGS" ] # Correct number of arguments not passed then echo "Usage: `basename $0` filename" exit $E_BADARGS fi 'find ./ -name \$1' -exec cp {} /home/marc/ \; แต่นั่นจะไม่ทำงานสำหรับฉัน ขอบคุณสำหรับความช่วยเหลือใด ๆ
2 unix  centos 

1
Unix find -size -1G ละเว้นไฟล์ที่ส่งคืนโดย find -size -900M [ซ้ำ]
คำถามนี้มีคำตอบอยู่ที่นี่แล้ว: find: ขีด จำกัด ขนาดไฟล์เท่ากัน แต่หน่วยต่างกันจะให้ผลลัพธ์ต่างกัน 1 คำตอบ ฉันต้องการไฟล์ tar-gzip ด้านล่างขนาดที่แน่นอนในไดเรกทอรี ฉันลองคำสั่งที่แนะนำจาก โพสต์นี้ และใช้งานได้ แต่เมื่อฉันเปลี่ยนอาร์กิวเมนต์สำหรับ find -size ไปยัง -1Gมันจะข้ามบางไฟล์แม้ว่าขนาดไฟล์จะต่ำกว่า 1GB เมื่อฉันให้ -100M และแม้กระทั่ง -900M ไฟล์เหล่านั้นไม่ได้ถูกละเว้น ข้อมูลบางอย่างเกี่ยวกับไฟล์: ไฟล์ในไดเรกทอรีประกอบด้วยไฟล์ขนาดกลางหลายไฟล์ (1-200 MB) และไฟล์เล็ก ๆ นับพัน (& lt; 1 MB ต่อไฟล์) ไฟล์ขนาดกลางเป็นไฟล์เรียกทำงาน (นามสกุล. exe) ไฟล์เล็ก ๆ เป็นเพียงไฟล์สุ่มที่ไม่มีนามสกุลหรือ. นามสกุล เมื่อฉันให้ -900Mผลที่ตามมาคือไฟล์ขนาดจิ๋วและขนาดกลางที่ถูกส่งคืน อย่างไรก็ตามเมื่อฉันให้ -1Gไฟล์ขนาดกลางทั้งหมดและไฟล์ขนาดเล็กจำนวนมากหายไปจากผลลัพธ์ คำถาม: มีอะไรที่ฉันคิดถึงที่นี่เกี่ยวกับการใช้งานของ …
1 linux  unix  find 

1
ไฟล์มีอยู่ไม่ทำงานในสคริปต์ที่คาดหวัง
ฉันพยายามตรวจสอบว่ามีบรรทัดใดบรรทัดหนึ่งอยู่ในชื่อไฟล์ของโฮสต์หรือไม่ ดังนั้นหากพบรูปแบบเฉพาะจากคำสั่ง grep dummy.txt จะถูกสร้างขึ้น จากนั้นฉันต้องการตรวจสอบว่า dummy.txt มีเงื่อนไขและดำเนินการต่อหรือไม่ แต่แม้ว่า dummy.txt จะถูกสร้างขึ้นโดยไม่พบคำสั่ง if: if {[file exists $fileName] } และการควบคุมจะถูกโอนไปยังบล็อกอื่น อะไรคือเหตุผล? มีวิธีใดที่ง่ายกว่าในการบรรลุสิ่งที่ฉันต้องการหรือไม่ set Host [lindex $argv 0 ] spawn ssh -o StrictHostKeyChecking=no userid@$Host expect "*assword*" send "password\n" expect "+" send "cd path/that/contains/filename\n" expect "*$*" send "pwd\n" set fileName dummy.txt send {grep '\[abc\]' …

3
ตรวจสอบว่ามีไฟล์สองไฟล์ในไดเรกทอรีเหมือนกันหรือไม่?
ฉันกำลังทำงานกับ OSX และฉันมีไฟล์ CSV หลายไฟล์ในไดเรกทอรี ฉันต้องการตรวจสอบว่าพวกเขาสองคนเหมือนกันหรือไม่ ฉันได้ลองแล้ว: cmp file1.csv file2.csv || echo "files are different" สิ่งนี้บอกฉันว่าสองไฟล์แรกแตกต่างกัน ฉันยังลอง: diff -q --from-file *.csv สิ่งนี้บอกฉันว่า เป็นครั้งแรก ไฟล์แตกต่างจากไฟล์อื่นทุกไฟล์ แต่ฉันจะตรวจสอบเรื่องนี้กับไฟล์ทุกไฟล์ได้อย่างไร
1 unix 

2
ตั้งค่า -T ใน bash - มันทำอะไร?
อะไรนะ set -T หมายถึงทุบตี? มันทำอะไร? ฉันเชื่อว่ามันเกี่ยวข้องกับกับดักใน Unix แต่ฉันไม่แน่ใจ ฉันพบ นี้ : โครงสร้างหลายอย่างนั้นง่ายขึ้นถ้าเรียกกับกับดัก ในขณะที่เป็นเด็กเบื้องหน้ายังคงทำงาน คุณจะ เพียงติดตั้งตัวจัดการกับดักที่ทำ "สิ่ง" เกี่ยวกับปัญหา และจะถูกเรียกทุกครั้งที่คุณกด SIGINT (หรือ SIGQUIT) เพียงเท่านี้ ตัวจัดการสัญญาณในโปรแกรม C ถูกเรียกใช้โดยไม่ได้ตั้งใจ บางทีฉันก็เหมือนกัน โปรแกรมเมอร์ C มาก แต่ฉันพบพฤติกรรม sh ล่าช้ามาก ไม่ใช่งานง่าย #! /bin/sh onsig() { trap SIGINT kill -SIGINT $$ } set -T # set async execution of …
1 bash  unix  shell 

2
วิธีการดึงไฟล์จากเนื้อหาระยะไกลตามชื่อไฟล์บางส่วน?
ฉันมีโฟลเดอร์ย่อย (A, B, C, D .. ) ในเซิร์ฟเวอร์ระยะไกลซึ่งมีไฟล์ประมาณ 100.gz รูปแบบการตั้งชื่อไฟล์นั้นเหมือน ND2_58_20151105173030_20151105173240_1234.log.gz โดยที่ฟิลด์ 3-rd และ 4-th หลังจาก _ คือเวลาเริ่มต้นและสิ้นสุด ตอนนี้ถ้าเวลาเริ่มต้น / เวลาสิ้นสุดอยู่ที่ 15 นาทีจากเวลาปัจจุบันฉันต้องการดึงไฟล์นั้นใคร ๆ แนะนำให้ฉันรู้วิธีการใช้เชลล์สคริปต์สำหรับดึงข้อมูลฉันใช้ rsync ขอบคุณ Arn
1 linux  unix 

2
เหตุใดการเปลี่ยนเส้นทางเอาต์พุต FINDSTR จึงสร้างจุดสิ้นสุดบรรทัด UNIX
เมื่อฉันออกคำสั่งนี้: FINDSTR /I /N "<sdk:extra>" addon.xml ผลลัพธ์คือ: 973: <sdk:extra> 995: <sdk:extra> 1017: <sdk:extra> 1036: <sdk:extra> 1057: <sdk:extra> 1078: <sdk:extra> 1098: <sdk:extra> 1118: <sdk:extra> 1140: <sdk:extra> 1161: <sdk:extra> 1182: <sdk:extra> 1203: <sdk:extra> 1223: <sdk:extra> 1244: <sdk:extra> แต่เมื่อฉันเปลี่ยนเส้นทางไปยังไฟล์ด้วยคำสั่งนี้: FINDSTR /I /N "<sdk:extra>" addon.xml > find_s.txt find_s.txt มีการสิ้นสุดบรรทัด UNIX (ขึ้นบรรทัดใหม่หรือ EOL ถ้าคุณชอบมากกว่านี้) ไม่มีใครรู้ว่าทำไม …

2
การเรียกใช้คำสั่ง mercurial สำหรับไดเรกทอรีทั้งหมดในไดเรกทอรีที่กำหนด
สมมติว่าฉันมีโคลนที่เก็บประมาณ 10 hg ในไดเรกทอรีหลัก (เรียกว่า "parent") มีวิธีใดบ้างที่ฉันจะเรียกใช้คำสั่ง Mercurial ได้ hg status ในไดเรกทอรีย่อยทั้งหมดแทนที่จะทำหน้าที่ลำบากของ cd ไอเอ็นจีลงในแต่ละไดเรกทอรีแล้วเรียกใช้ hg status? ฉันลองของเก่าที่ดี xargs แต่ด้วยเหตุผลบางอย่างมันล้มเหลวในการทำงาน คำสั่งที่ฉันใช้คือ: find . -maxdepth 1 -type d -print | xargs -t "hg status" และ ls | xargs -t "hg status" ปรับปรุง: ทางออกคือการใช้ผู้ถือครองที่ชัดเจนเมื่อใช้ xargs. สิ่งที่ต้องการ: ls | xargs -t -I {} hg …
1 unix  mercurial 

5
วิธีที่ดีที่สุดในการดึงภาพฮาร์ดไดรฟ์ออกจากเน็ตบุ๊ก?
ฉันมีเน็ตบุ๊กที่มี Windows XP ติดตั้งอยู่ ฉันต้องการเล่นกับมันเล็กน้อย (อ่าน: ติดตั้งระบบปฏิบัติการอื่น) แต่ก่อนที่ฉันจะออกไปทำอย่างนั้นฉันต้องการที่จะทำให้ภาพที่สมบูรณ์ของฮาร์ดไดรฟ์ ฉันไม่สามารถถอดฮาร์ดไดรฟ์ออกได้ จำนวนมาก การทำงานคลายเกลียวสิ่งต่าง ๆ และละเมิดการรับประกันของฉัน) ดังนั้นวิธีที่ดีที่สุดในการสำรองฮาร์ดไดรฟ์คืออะไร? ฮาร์ดไดรฟ์มีขนาดใหญ่เพียง 16 กรัม แต่ฉันไม่มีแฟลชไดรฟ์ขนาด 16 กรัมดังนั้นฉันต้องหันไปใช้การสำรองข้อมูลผ่านเครือข่าย นอกจากนี้เพื่อให้ชัดเจน: ฉันต้องการสำรองข้อมูล ทั้งหมด ฮาร์ดไดรฟ์รวมถึง MBR และตารางพาร์ติชั่นและเพื่อที่ฉันจะสามารถกู้คืนมันกลับมาได้เหมือนเดิม ฉันจะทำสิ่งนี้ได้อย่างไร ฉันสบายใจในการใช้ dd และฉันมีแฟลชไดรฟ์ที่ฉันสามารถบู๊ตได้เมื่อติดตั้ง OpenBSD ฉันไม่แน่ใจว่าจะส่งผ่านเครือข่ายได้อย่างไรและถ้าฉันสามารถบีบอัดบางอย่างได้ก่อน นอกจากนี้ฉันไม่ต้องการซื้อซอฟต์แวร์ / ฮาร์ดแวร์ใด ๆ เพื่อทำเช่นนี้

1
ต่อท้ายบรรทัดใหม่ไปยังหลายไฟล์
ฉันพยายามต่อท้ายบรรทัดใหม่ไปยังหลายไฟล์ด้วยคำสั่งต่อไปนี้: find -name *.ovpn -exec sh echo "line to append" >> {} \; ก่อนที่จะทำสิ่งนี้ฉันได้รับคำสั่งต่าง ๆ เพื่อให้แน่ใจว่ามันจะเป็นไปตามที่ฉันคาดไว้: find -name *.ovpn -exec sh echo "hello" \; แต่ทั้งหมดนี้จะพิมพ์ออกมา "sh: 0: ไม่สามารถเปิดเสียงสะท้อน" สำหรับทุกไฟล์ที่พบ
1 command-line  unix  find  sh 

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