“>” Komutunun doğru adı nedir?


38

>Komutu kullananların üzerine yazmadan bir dosyayı bir dosyaya nasıl aktaracağımı bulmaya çalışıyordum ve ne dendiğini bilmediğimi fark ettim. Sağ ok veya sağ chevron veya komuttan daha fazlasını aramak hiçbir şey göstermedi. Her zaman sadece ona geçmek için aradım .

Yanıtlar:


53

>bir komut değil, bir dosya tanımlayıcı yeniden yönlendirmesidir. Bu, kabuğun bu atamayı ayrıştırdığı, komut satırından çıkardığı ve başlatıldığı yeni işlemin ortamını değiştirdiği anlamına gelir. Yeni işlem komut satırının bu bölümünü fark etmiyor. Her yere koyabilmenizin nedeni budur: Başlangıçta, sonunda veya arada.

İçindeki REDIRECTIONbloğu arayın man bash.

Mevcut bir dosyaya eklemek için kullanmanız gerekir >>.


Seçenek noclobberayarlanmışsa, >|geçersiz kılınır ve dosyanın gizlenmesini sağlar.
bsd

30

>bir yönlendirme operatörüdür . >Normal bir dosyaya yönlendirmek için kullanmanın , noclobber ayarlanmadıkça zaten orada olanların üzerine yazacağını unutmayın . >>Dosyanın sonuna eklenir.


Ve noclobberayarlanmışsa üzerine yazmaz (bash).
Hauke ​​Laging

Cevabım güncellendi, açıklamalar için teşekkürler.
Josh Jolly

5
@HaukeLaging noclobbersadece bir bashism değildir. It adlı POSIX oluşumu
kojiro

6

Diğer insanların cevapladığı gibi >, bir komut değil, bir yönlendirme operatörüdür. Bununla birlikte, 'yeniden yönlendirme operatörü' terimi özellikle >, ancak birkaç farklı yönlendirme operatörünü ifade etmez . dashAdam sayfa listeleri yönlendirme operatör olarak aşağıdaki:

 < > >| << >> <& >& <<- <>

Her biri için geçerli bir kişisel ad olduğundan emin değilim. Belki bazı eski kabuk kılavuzlarına göz atarsanız ilginç bir şey bulacaksınız. Bu kaynak , doğru ya da yanlış, kesinlikle bazılarını isimlendirmeye devam ediyor:

>  - 'output redirection operator'
<  - 'input redirection operator'
>> - 'output append operator'

Ayrıca:

2> - 'standard error redirection operator'

Ancak bunun gerçekten doğru olduğunu sanmıyorum çünkü 2teknik olarak operatörün bir parçası değil.

Hızlı başvuru (yukarıdakilerden herhangi birini tanımıyorsanız):

>   - redirect output stream to a file, eg >somefile (for stdout) or 2>somefile
>|  - as above but overwrite the file even if the noclobber shell option is set
>>  - append output stream to file
<   - redirect input stream from file, n defaults to 0 for stdin
<>  - open file for reading and writing on stdin
>&  - redirect output stream to another stream (eg >&1) or close with - (eg 2>&-)
<<  - here document - see http://en.wikipedia.org/wiki/Here_document
<<- - here document with leading tabs removed.

İçinde bashayrıca:

<<< - here string, a one line here file. Eg <<<"foo bar"

Çok güzel hızlı başvuru listesi, ancak <<-önde gelen sekmeleri ve boşlukları kaldırmaz ?
iconoclast

@iconoclast, hayır, kesinlikle sadece sekmeler.
Graeme

0

> çıktıyı zaten var olan herhangi bir şeyin üzerine yazılan bir dosyaya (veya aygıta) yönlendirir

>> çıktıyı zaten var olan herhangi bir şeye ekleyen bir dosyaya (veya aygıta) yönlendirir

< Verileri bir dosyadan (veya cihazdan) bir programa veya cihaza yönlendirir

<< burada bir belge


1
<<Bir olduğunu burada belge
Graeme

1
@ Graeme Cevabımı düzenledim. Yardımın için teşekkürler
les
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.