Terminal penceresinden Linux'ta dosya nasıl oluşturulur? [kapalı]


Yanıtlar:


577

Dosyanın ne içermesini istediğinize bağlı olarak:

  • touch /path/to/file boş bir dosya için
  • somecommand > /path/to/file bazı komutların çıktısını içeren bir dosya için.

      eg: grep --help > randomtext.txt
          echo "This is some text" > randomtext.txt
    
  • nano /path/to/fileveya vi /path/to/file(veya any other editor emacs,gedit etc)
    Düzenlemek için mevcut dosyayı açar veya yoksa boş dosyayı oluşturur ve girer.


51
ayrıca printf "some long message\nwith newlines\n" > file,. Hepinize iyi şanslar.
shellter

1
UNIX bir komut satırı ortamı değil, (çok farklı) işletim sistemi ailesi. Bununla birlikte, Evet, bu çoğu Unices üzerinde çalışmalı
Eugen Rieck

4
touchUNIX'te çalışacak, çünkü bu standart bir araç. somecommandStandart sözdizimini kullanır çünkü örnek çalışacaktır. nanoAdında bir editör çünkü örnek çalışmayabilir nanoyüklenmemiş olabilir (nano standart değil). Standart düzenleyici edyerine kullanılır ve kullanılabilir nanoveya $EDITORkullanıcı veya sistem tarafından yapılandırılmış varsayılan metin düzenleyicinizi (varsa) kullanmak için kullanabilirsiniz.
sorpigal

14
Ayrıca, sahip olmasanız >/path/to/filebile boş bir dosya oluşturmayı söyleyebilirsiniz touch.
sorpigal

2
@EugenRieck Ya izin verilmediği söylenirse
123


92

Dosyayı kullanarak oluşturun cat

$ cat > myfile.txt

Şimdi, dosyaya ne istersen yaz:

Hello World!

Kaydetmek ve çıkmak için CTRL-D


Dosyayı hemen düzenlemek için kolay ve kullanışlı bir yol sunduğu için kedi kullanmayı tercih ederim.
Delali

Ayrıca hiçbir şey yazamazsınız.
Bing Zhao

Denediğimde cat /etc/systemd/system/sample.service, yeni bir sample.service dosyası oluşturmak yerine "böyle bir dosya veya dizin yok" dedi.
TylerH

@TylerH cat /etc/systemd/system/sample.servicedosyayı konsola yazdırır, cat > /etc/systemd/system/sample.servicestandart girdiyi dosyaya yönlendirir (bu nedenle control-d tuşlarına basarak standart girişi kapatmanız gerekir.
Jerry Jeremiah

40

Birkaç olası çözüm vardır:

Boş bir dosya oluştur

touch file

>file

echo -n > file

printf '' > file

echoVersiyon çalışacaktır yalnızca sürümünüz echodesteklere -nbastırmak satırbaşıyla geçin. Bu standart olmayan bir ektir. Diğer örneklerin tümü POSIX kabuğunda çalışır.

Yeni satır içeren ve başka bir şey içermeyen bir dosya oluşturma

echo '' > file

printf '\n' > file

Bu, yeni bir satırla bittiği için geçerli bir "metin dosyası" dır.

Dosyaya metin yazma

"$EDITOR" file

echo 'text' > file

cat > file <<END \
text
END

printf 'text\n' > file

Bunlar eşdeğerdir. $EDITORKomutu EDİTÖR ortam değişkeninde tanımlanan interaktif bir metin düzenleyicisi olduğunu ve etkileşimli eşdeğer metin girmek varsayar. catVersiyon sonra değişmez yeni satırı varsaymaktadır \ve birbirlerine satırdan sonra. Bunun dışında bunların hepsi bir POSIX kabuğunda çalışacaktır.

Elbette dosya yazmanın ve oluşturmanın başka yöntemleri de vardır.



17

Linux'ta bir metin dosyası nasıl oluşturulur:

  • touchMetin dosyası oluşturmak için kullanma :$ touch NewFile.txt
  • catYeni bir dosya oluşturmak için kullanma : $ cat NewFile.txt
    Dosya oluşturulur, ancak boştur ve yine de kullanıcıdan gelen girişi bekler. Terminale herhangi bir metin yazabilirsiniz ve bir kez bittiğinde CTRL-D onu kapatır veya CTRL-C sizden kaçar.
  • >Bir metin dosyası oluşturmak için sadece şunu kullanın :$ > NewFile.txt
  • Son olarak, herhangi bir metin düzenleyici adını kullanabilir ve sonra dosyayı oluşturabiliriz, örneğin:
    nano MyNewFile vi MyNewFile NameOfTheEditor NewFileName

16

haha! bu kolay! bunu dene:

$ touch filename

1
Bu sudo ile çalıştı, bu yüzden sistem klasöründe yeni dosya oluşturabildim.
Patricia

15

touchDiğerlerinin söylediği gibi komutu kullanabilirsiniz :

touch filename

Komut satırında dosyaya yazmak için echoveya tuşunu kullanabilirsiniz printf:

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

Belki izinlerle ilgili sorun yaşayabilirsiniz. Aşağıdaki hatayı alıyorsanız: burada açıklandığı gibi bash: filename: Permission deniedkullanmanız gerekir sudo bash -c 'echo "Foo" > filename': /ubuntu/103643/cannot-echo-hello-x-txt-even-with-sudo


14

1. yöntem

echo -n > filename.txt

2. yöntem

> filename.txt

3. yöntem

touch filename.txt

Dosya içeriğini görüntülemek için

vi filename.txt

2 yöntem type-> "> filename.txt" dir
shashwat gupta

Soru, yardım merkezinde tanımlandığı gibi Yığın Taşması için konu ile ilgili değildir . Lütfen bu tür soruları cevaplamayın; bunun yerine, dikkat çekmek için işaretlemelisiniz ve uygun şekilde kapatılacak veya taşınacaklar.
Toby Speight






4

Yeni bir dosya oluşturmaya çalışıyorsanız, ancak şöyle diyor: 'File does not exist'bunun nedeni, henüz mevcut olmayan bir dizine de erişmenizdir. mkdir /path/to/dirKomutu kullanarak önce var olmayan tüm dizinleri oluşturmanız gerekir .


0

İnstall komutunu kullanarak sahiplik ve izinlerle boş bir dosya oluşturmak için.

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

Bu sudo, birçok senaryoda yararlıdır, ancak OP sorusunun cevabının doğrudan bir parçası değildir.
üçlü

Grubun bir üyesine ait olan veya grubun bir üyesi olmayan dosyaya ihtiyacınız olan kullanıcı adı değilseniz gereklidir.
LinuxGuru

Evet, bunun gibi OP'nin sorduğu şeyden kesinlikle bahsetmeyen senaryolar var.
üçlü

0

En kolay ve hızlı yollardan biri

$ vim filename
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.