Unix & Linux

คำถาม & คำตอบสำหรับผู้ใช้ Linux, FreeBSD และระบบปฏิบัติการ Un * x อื่น ๆ

5
ค้นหา | xargs shasum สร้างการตรวจสอบของไฟล์ checksum เอง (ก่อนกำหนด) และล้มเหลวเมื่อตรวจสอบ
ปัญหาของฉัน (ในสคริปต์ด้วย#!/bin/sh) มีดังนี้: ฉันพยายามตรวจสอบไฟล์ทั้งหมดในไดเรกทอรีเพื่อการเก็บถาวร ไฟล์ checksum (ในกรณีของฉัน sha1) ที่มีชื่อไฟล์ทั้งหมดควรอยู่ในไดเรกทอรีเดียวกัน ช่วยบอกว่าเรามีไดเรกทอรี~/testพร้อมไฟล์f1และf2: mkdir ~/test cd ~/test echo "hello" > f1 echo "world" > f2 ตอนนี้กำลังคำนวณ checksums ด้วย find -maxdepth 1 -type f -printf '%P\n' | xargs shasum ทำตามที่ฉันต้องการทุกอย่างแสดงรายการไฟล์ทั้งหมดของไดเรกทอรีปัจจุบันเท่านั้นและคำนวณผลรวม sha1 (maxdepth อาจเปลี่ยนแปลงได้ในภายหลัง) เอาต์พุตบน STDOUT คือ: f572d396fae9206628714fb2ce00f72e94f2258f f1 9591818c07e900db7e1e0bc4b884c945e6a61b24 f2 น่าเสียดายที่เมื่อพยายามบันทึกไฟล์ลงในไฟล์ด้วย find -maxdepth 1 …
10 find  xargs  checksum  hashsum 

6
เป็นไปได้ไหมที่จะแทนที่“ แล้ว” ด้วยวงเล็บ?
ฉันเรียนรู้วิธีการเขียนโค้ดเป็นCภาษาแรกและการใช้งาน if ( code ) then code fi ทำให้มันยากสำหรับฉันที่จะอ่านโค้ดของฉัน (อย่าถามว่าทำไม) มีสิ่งทดแทนthenหรือไม่? บางสิ่งเช่นนี้ if ( code ) { code } fi

1
เป็นไปได้หรือไม่ที่จะทราบถึงแหล่งที่มา (แอปพลิเคชั่น) ของคลิปบอร์ด
ฉันสังเกตเห็นว่าบางครั้งเนื้อหาคลิปบอร์ดไม่สามารถใช้งานได้หากแอปพลิเคชันต้นทาง (ที่คัดลอกเนื้อหามา) ถูกปิด นี่ทำให้ฉันสงสัยว่าเป็นไปได้หรือไม่ที่จะรู้ว่าแอปพลิเคชันต้นฉบับคืออะไร (เช่นอาจเป็น PID) ทำไม? หากแอปพลิเคชันต้นทางเป็นเทอร์มินัลฉันต้องการค้นหาไดเรกทอรีการทำงานของเทอร์มินัลในกรณีที่เนื้อหาที่คัดลอกเป็นพา ธ สัมพัทธ์เพื่อสร้างพา ธ แบบเต็มไปยังไฟล์ FYI ฉันกำลังใช้ xclip เพื่อกำหนดเนื้อหาของคลิปบอร์ดเช่น xclip -selection primary -t STRING -o 2> /dev/null
10 x11  process  clipboard  xclip 

1
การแทนที่ Bash พร้อมตัวแปรที่กำหนดจากรูปแบบ glob
ตัวอย่างด้านล่างอธิบายถึงปัญหา เหตุใดจึงFILENAMEพิมพ์อย่างถูกต้องเมื่อสะท้อนและรับรู้เป็นรูปแบบเมื่อใช้การทดแทน? #!/bin/bash FILEPATH_WITH_GLOB="/home/user/file_*" FILENAME=$(basename "$FILEPATH_WITH_GLOB") echo $FILENAME #file_1234 echo ${FILENAME:1:5} #ile_* <---why is this not ile_1


2
การรอคอย High IO - วิธีการตรวจสอบสาเหตุที่แท้จริง?
ฉันมีอินสแตนซ์ MySQL บนเซิร์ฟเวอร์เฉพาะสองแห่ง หนึ่งสำหรับการผลิตอีกหนึ่งสำหรับแพลตฟอร์มการทดสอบ เซิร์ฟเวอร์ 2 ตัวค่อนข้างเหมือนกันความแตกต่างเพียงอย่างเดียวคือตัวควบคุม RAID และปริมาณเสมือน (HD เหมือนกัน) ในการผลิตมีคอนโทรลเลอร์ HW RAID เฉพาะและโวลุ่ม RAID 10 ในอีกด้านหนึ่งคอนโทรลเลอร์ RAID ดูเหมือนจะเป็นซอฟต์แวร์ (Lenovo ThinkServer RAID 110i) และโวลุ่มนั้นคือ RAID 5 เราสังเกตเห็นว่าระหว่างการคอมมิชชัน MySQL เรามีไอโออิทสูง: while true; do date; ps auxf | awk '{if($8=="D") print $0;}'; sleep 1; done root 26661 0.0 0.0 0 0 …

1
OS X, bash: ใช้งานได้กับตัวอธิบายไฟล์ที่เปิดน้อยกว่า cat ไม่ทำงาน
ในสคริปต์ทุบตีที่ฉันกำลังทำงาน (ซึ่งต้องทำงานบน Ubuntu และ OS X) ฉันต้องเปลี่ยนเส้นทางเอาต์พุตของคำสั่งหลายร้อยไปยังไฟล์ แทนที่จะเพิ่ม&>...พวกเขาทั้งหมดต่อท้ายฉันก็ทำได้ exec 9>&1 exec 5<>/tmp/some-file.txt exec 1>&5 จนถึงตอนนี้ดีมาก แต่ครึ่งหนึ่งของคำสั่งเหล่านั้นฉันต้องอ่านทุกอย่างที่เขียนไปแล้วในขณะที่เปิดไฟล์ descriptor ไว้ ตอนนี้บน Ubuntu ฉันสามารถทำได้ cat /dev/fd/5 หรือ tee </dev/fd/5 แต่ใน OS X ไม่มีอะไรถูกพิมพ์เลย (และคำสั่งจะออกทันที) อย่างไรก็ตามการใช้lessฉันสามารถดูเนื้อหาของไฟล์ทั้งสอง ฉันสามารถบรรลุผลข้างต้น (ทำงานกับทั้งสองระบบปฏิบัติการ) โดยใช้ less /dev/fd/5 | tee แต่ดูเหมือนว่าแฮ็ค ดังนั้นเหตุใดจึงlessเห็นสิ่งที่catไม่สามารถใช้กับ OS X ได้ (หรือลูกหลาน BSD ทุกคนได้รับผลกระทบหรือไม่) หรือฉันกำลังทำอะไรผิดพลาด?

1
วิธีการถ่ายโอนไฟล์จากกล้องแคนนอนผ่าน wifi?
กล้อง Canon เช่น powershot s120 และ sx600hs มีความสามารถไร้สาย วิธีนั้นสามารถใช้กับ linux เพื่อถ่ายโอนรูปภาพและวิดีโอโดยไม่เกี่ยวข้องกับ Windows ในทางใดทางหนึ่ง?
10 wifi  canon 

5
ข้อผิดพลาด nginx logrotate ในงาน cron
ฉันใช้ Ubuntu 14.04 LTS และ nginx ใน Digital Ocean VPS และได้รับอีเมลเหล่านี้เป็นครั้งคราวเกี่ยวกับงาน cron ที่ล้มเหลว: เรื่อง การทดสอบ Cron -x / usr / sbin / anacron || (cd / && run-parts --report /etc/cron.daily) เนื้อหาของอีเมลคือ: /etc/cron.daily/logrotate: ข้อผิดพลาด: ข้อผิดพลาดในการรันสคริปต์ postrotate ที่ใช้ร่วมกันสำหรับ '/var/log/nginx/*.log' run-parts: /etc/cron.daily/logrotate ออกมาพร้อมกับรหัสส่งคืน 1 มีความคิดเห็นเกี่ยวกับวิธีการแก้ไขปัญหานี้หรือไม่? ปรับปรุง: /var/log/nginx/*.log { weekly missingok rotate 52 compress …
10 ubuntu  cron  nginx  logrotate 

2
ความแตกต่างในการดำเนินการของ init กับแบบฝังตัวกับแบบเริ่มต้นภายนอก?
ฉันกำลังสร้างระบบลีนุกซ์ที่น้อยมากซึ่งเพิ่งประกอบไปด้วยเคอร์เนล (v4.1-rc5) และ initramfs ที่บรรจุด้วย busybox (v1.23.2) มันใช้งานได้ดีส่วนใหญ่ แต่ฉันสังเกตเห็นความแตกต่างในพฤติกรรมของการดำเนินการคำสั่งใน / init ไม่ว่าฉันจะใช้ initramfs ฝังตัวกับภายนอก สคริปต์ / init คือ: #!/bin/sh dmesg -n 1 mount -t devtmpfs none /dev mount -t sysfs none /sys mount -t proc none /proc echo "Welcome" while true do setsid cttyhack /bin/sh done จากนั้นฉันจะตั้งค่าตัวเลือก CONFIG_INITRAMFS_SOURCE ในเคอร์เนล. config …
10 linux  kernel  boot  initramfs 

3
ฉันจะใส่ความคิดเห็นในไฟล์ / etc / shadow ของฉันได้อย่างไร
ฉันกำลังทำงานผ่านการอัปเกรดระบบและตัวจัดการแพ็กเกจของฉันกำลังแสดงการเปลี่ยนแปลงระหว่างอัปสตรีม / etc / shadow และของฉัน ฉันต้องการที่จะใส่ความคิดเห็นในไฟล์สำหรับครั้งต่อไปนี้เกิดขึ้น ฉันจะใส่ข้อคิดเห็นในไฟล์ / etc / shadow ได้อย่างไรโดยไม่ทำให้แตก ฉันคิดว่า "#" เป็นค่าเริ่มต้นน่าจะทำได้ แต่ถ้าฉันทำสิ่งนี้ผิดการรีบูตจะไม่สนุก
10 password 

1
LiveCD ที่ GParted ล้มเหลวในการเริ่มต้น
ฉันมีการติดตั้ง VM ใน VirtualBox (LinuxMint 17.1) แต่ฉันกำลังพยายามบูตให้ GParted เพื่อให้ฉันสามารถปรับขนาดพาร์ติชัน ฉันใช้gparted-live-0.22.0-2-amd64.isoและมันบูทอย่างถูกต้อง ฉันได้ลองทุกตัวเลือกในด้วงเช่นเดียวกับเมนูหลัง แต่ฉันไม่สามารถผ่านหน้าจอนี้ได้: หน้าจอนี้จะปรากฏขึ้นระหว่างการบู๊ตด้วยก่อนที่ฉันจะไปที่หน้าจอการเลือก keymap: การกำหนดค่า VM อยู่ที่นี่

2
ไม่สามารถคัดลอกไฟล์ขนาดใหญ่ไปยัง ext2 usb stick [ปิด]
ปิด. คำถามนี้เป็นคำถามปิดหัวข้อ ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้เป็นไปตามหัวข้อสำหรับ Unix & Linux Stack Exchange ปิดให้บริการใน4 ปีที่แล้ว ฉันมี usb stick 8G (ฉันใช้ linux Mint) และฉันพยายามคัดลอกไฟล์ 5.4G ไป แต่ได้รับ No space left on device ขนาดไฟล์ของไฟล์ที่คัดลอกก่อนที่จะล้มเหลวคือ 3.6G เสมอ เอาท์พุทของแท่งที่เมาท์แสดงให้เห็น .. df -T /dev/sdc1 ext2 7708584 622604 6694404 9% /media/moo/ba20d7ab-2c46-4f7a-9fb8-baa0ee71e9fe df -h /dev/sdc1 7.4G 608M 6.4G 9% /media/moo/ba20d7ab-2c46-4f7a-9fb8-baa0ee71e9fe …

2
ฉันจะคัดลอกไฟล์บางส่วนจากดิสก์ที่เสียหายได้อย่างไร
ฉันมีดิสก์ที่เสียหายที่ฉันต้องการคัดลอกไฟล์ 60G บางครั้งดิสก์จะถูกรีเซ็ตและฉันก็ทำสำเนาไม่ได้ ฉันต้องการลองและคัดลอกชิ้นบางส่วนแล้วนำมารวมกัน ฉันจะทำสิ่งนี้ได้อย่างไร

6
การลบไฟล์ด้วยช่องว่างในชื่อของพวกเขา
ฉันพยายามลบไฟล์ทั้งหมดที่มีช่องว่างในชื่อของพวกเขา ฉันใช้คำสั่งดังต่อไปนี้ แต่มันทำให้ฉันมีข้อผิดพลาด คำสั่ง: ls | egrep '. ' | xargs rm ที่นี่ถ้าฉันใช้ls | egrep '. 'คำสั่งเพียงอย่างเดียวมันให้ชื่อไฟล์ทั้งหมดพร้อมช่องว่างในชื่อไฟล์ แต่เมื่อฉันพยายามที่จะส่งออกไปยัง rm ช่องว่างทั้งหมด (นำหน้าหรือต่อท้าย) จะถูกลบ ดังนั้นคำสั่งของฉันไม่ได้รับการดำเนินการอย่างถูกต้อง ตัวชี้ใด ๆ เกี่ยวกับวิธีลบไฟล์ที่มี atleast หนึ่งช่องว่างในชื่อของพวกเขา?
10 shell  quoting  rm  xargs 

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