จะสร้างไฟล์ใน Linux จากหน้าต่างเทอร์มินอลได้อย่างไร? [ปิด]


449

วิธีที่ง่ายที่สุดในการสร้างไฟล์ใน terminal Linux คืออะไร?


1
$>newfileยังสามารถสร้างไฟล์
EsmaeelE

คำตอบ:


577

ขึ้นอยู่กับสิ่งที่คุณต้องการให้ไฟล์มี:

  • touch /path/to/file สำหรับไฟล์ว่าง
  • somecommand > /path/to/file สำหรับไฟล์ที่มีเอาต์พุตของคำสั่งบางคำสั่ง

      eg: grep --help > randomtext.txt
          echo "This is some text" > randomtext.txt
    
  • nano /path/to/fileหรือvi /path/to/file(หรือany other editor emacs,gedit etc)
    มันจะเปิดไฟล์ที่มีอยู่สำหรับการแก้ไขหรือสร้าง & เปิดไฟล์เปล่าเพื่อป้อนหากไม่มีอยู่


51
printf "some long message\nwith newlines\n" > fileนอกจากนี้ยังมี โชคดีทุกคน.
หอย

1
UNIX ไม่ใช่สภาพแวดล้อมบรรทัดคำสั่ง แต่เป็นตระกูลของ OS (แตกต่างกันมาก) ที่กล่าวว่า: ใช่สิ่งนี้ควรทำงานได้กับ Unices ส่วนใหญ่
Eugen Rieck

4
touchจะทำงานใน UNIX เพราะเป็นเครื่องมือมาตรฐาน somecommandตัวอย่างจะทำงานเพราะมันใช้ไวยากรณ์มาตรฐาน nanoตัวอย่างอาจไม่ทำงานเนื่องจากเป็นบรรณาธิการชื่อnanoอาจไม่ได้รับการติดตั้ง (นาโนไม่ได้มาตรฐาน) ตัวแก้ไขมาตรฐานคือedและสามารถใช้แทนnanoหรือคุณสามารถใช้$EDITORตัวแก้ไขข้อความเริ่มต้นที่ผู้ใช้หรือระบบกำหนดถ้ามี
sorpigal

14
นอกจากนี้คุณก็อาจจะบอกว่าในการสร้างไฟล์ที่ว่างเปล่าแม้ว่าคุณจะไม่ได้มี>/path/to/file touch
sorpigal

2
@EugenRieck จะเกิดอะไรขึ้นถ้ามีข้อความแจ้งว่าถูกปฏิเสธ
123


92

สร้างไฟล์โดยใช้ cat

$ cat > myfile.txt

ตอนนี้เพียงแค่พิมพ์สิ่งที่คุณต้องการในไฟล์:

Hello World!

CTRL-D เพื่อบันทึกและออก


ฉันชอบใช้ cat เนื่องจากเป็นวิธีที่ง่ายและสะดวกในการแก้ไขไฟล์ในทันที
Delali

คุณสามารถพิมพ์อะไรก็ได้
Bing Zhao

เมื่อฉันลองcat /etc/systemd/system/sample.serviceมันบอกว่า "ไม่มีไฟล์หรือไดเรกทอรีดังกล่าว" แทนที่จะสร้างไฟล์ sample.service ใหม่
TylerH

@TylerH cat /etc/systemd/system/sample.serviceพิมพ์ไฟล์ไปที่คอนโซลcat > /etc/systemd/system/sample.serviceเปลี่ยนเส้นทางอินพุตมาตรฐานไปยังไฟล์ (ซึ่งเป็นสาเหตุที่คุณต้องปิดอินพุตมาตรฐานโดยกด control-d.
Jerry Jeremiah

40

มีวิธีแก้ปัญหาที่เป็นไปได้หลายประการ:

สร้างไฟล์ว่าง

touch file

>file

echo -n > file

printf '' > file

echoรุ่นจะทำงานเฉพาะถ้ารุ่นของคุณechoสนับสนุน-nสวิทช์เพื่อขึ้นบรรทัดใหม่ปราบ นี่คือการเพิ่มที่ไม่ได้มาตรฐาน ตัวอย่างอื่น ๆ ทั้งหมดจะทำงานใน POSIX เชลล์

สร้างไฟล์ที่มีการขึ้นบรรทัดใหม่และไม่มีอะไรอื่น

echo '' > file

printf '\n' > file

นี่เป็น "ไฟล์ข้อความ" ที่ถูกต้องเพราะมันจะลงท้ายด้วยบรรทัดใหม่

เขียนข้อความลงในไฟล์

"$EDITOR" file

echo 'text' > file

cat > file <<END \
text
END

printf 'text\n' > file

สิ่งเหล่านี้เทียบเท่ากัน $EDITORคำสั่งอนุมานว่าคุณมีโปรแกรมแก้ไขข้อความโต้ตอบกำหนดไว้ในตัวแปรสภาพแวดล้อม EDITOR และที่คุณโต้ตอบป้อนข้อความเทียบเท่า catรุ่นทึกทักขึ้นบรรทัดใหม่ที่แท้จริงหลัง\และหลังแต่ละสายอื่น ๆ นอกจากนั้นสิ่งเหล่านี้ทั้งหมดจะทำงานใน POSIX เชลล์

แน่นอนว่ายังมีวิธีอื่นอีกมากมายในการเขียนและสร้างไฟล์เช่นกัน



17

วิธีสร้างไฟล์ข้อความบน Linux:

  • การใช้touchเพื่อสร้างไฟล์ข้อความ:$ touch NewFile.txt
  • การใช้catเพื่อสร้างไฟล์ใหม่: $ cat NewFile.txt
    ไฟล์ถูกสร้างขึ้น แต่มันว่างเปล่าและยังคงรออินพุตจากผู้ใช้ คุณสามารถพิมพ์ข้อความใด ๆ ลงในเทอร์มินัลและเมื่อเสร็จแล้ว CTRL-D จะปิดมันมิฉะนั้น CTRL-C จะหนีคุณออกไป
  • เพียงใช้>เพื่อสร้างไฟล์ข้อความ:$ > NewFile.txt
  • สุดท้ายเราสามารถใช้ชื่อโปรแกรมแก้ไขข้อความใด ๆ แล้วสร้างไฟล์เช่น:
    nano MyNewFile vi MyNewFile NameOfTheEditor NewFileName

16

ฮ่าฮ่า! มันเป็นเรื่องง่าย! ลองนี้:

$ touch filename

1
สิ่งนี้ใช้ได้กับ sudo ดังนั้นฉันจึงสามารถสร้างไฟล์ใหม่ในโฟลเดอร์ระบบได้
Patricia

15

คุณสามารถใช้touchคำสั่งตามที่คนอื่นพูดว่า:

touch filename

หากต้องการเขียนลงไฟล์บนบรรทัดคำสั่งคุณสามารถใช้echoหรือprintf:

echo "Foo" > filename
printf "Foo" > filename

บางทีคุณอาจมีปัญหากับการอนุญาต หากคุณได้รับข้อผิดพลาดต่อไปนี้: bash: filename: Permission deniedคุณต้องใช้sudo bash -c 'echo "Foo" > filename'ตามที่อธิบายไว้ที่นี่: /ubuntu/103643/cannot-echo-hello-x-txt-even-with-sudo


14

วิธีที่ 1

echo -n > filename.txt

วิธีที่ 2

> filename.txt

วิธีที่ 3

touch filename.txt

เพื่อดูเนื้อหาไฟล์

vi filename.txt

2 เมธอดคือ type-> "> filename.txt"
shashwat gupta

คำถามที่ไม่ได้อยู่ในหัวข้อสำหรับกองมากเกินที่กำหนดไว้ในศูนย์ช่วยเหลือ กรุณาอย่าตอบคำถามเหล่านี้ แต่คุณควรตั้งค่าสถานะพวกเขาเพื่อความสนใจและพวกเขาจะถูกปิดหรือย้ายอย่างเหมาะสม
Toby Speight






4

ในกรณีที่พวกคุณกำลังพยายามสร้างไฟล์ใหม่ แต่มันบอกว่า: 'File does not exist'มันเป็นเพียงเพราะคุณยังเข้าถึงไดเรกทอรีซึ่งยังไม่มีอยู่ คุณต้องสร้างไดเรกทอรีที่ไม่มีอยู่ทั้งหมดก่อนโดยใช้mkdir /path/to/dirคำสั่ง


0

เพื่อสร้างไฟล์เปล่าที่มีความเป็นเจ้าของและสิทธิ์ใช้งานโดยติดตั้ง

sudo install -v -oUSER -gGROUP -m640 /dev/null newFile.txt

สิ่งsudoนี้มีประโยชน์ในหลาย ๆ สถานการณ์ แต่ไม่ได้เป็นส่วนหนึ่งของคำตอบสำหรับคำถามของ OP โดยตรง
tripleee

จำเป็นถ้าคุณไม่ใช่ชื่อผู้ใช้ที่คุณต้องการไฟล์ที่เป็นของหรือไม่เป็นสมาชิกของกลุ่ม
LinuxGuru

ใช่มีสถานการณ์เช่นนั้น แต่พูดอย่างเคร่งครัดไม่ใช่สิ่งที่ OP ถาม
tripleee

0

หนึ่งในวิธีที่ง่ายที่สุดและรวดเร็ว

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