GNU/Linux >> Znalost Linux >  >> Linux

Kopírovat obsah souboru do schránky bez zobrazení jeho obsahu?

Jak zkopírovat obsah souboru v UNIXu bez zobrazení obsahu souboru. Nechci kočku nebo vi vidět obsah.

Chci je zkopírovat do schránky, abych je mohl vložit zpět do poznámkového bloku Windows.

Nemohu zkopírovat soubor z tohoto serveru na jiný kvůli omezení přístupu.

Přijatá odpověď:

X11

Pokud používáte X11 (nejběžnější GUI na tradičních Unixových nebo Linuxových systémech), ke zkopírování obsahu souboru do výběru X11 CLIPBOARD bez zobrazení můžete použít xclip nebo xsel utility.

xclip -sel c < file

Nebo:

xsel -b < file

k uložení obsahu file jako výběr CLIPBOARD X11.

Chcete-li uložit výstup příkazu:

mycommand | xclip -sel c
mycommand | xsel -b

Pamatujte, že by mělo být uloženo pomocí kódování UTF-8, jinak nebude vkládání fungovat správně. Pokud file je kódován pomocí jiné znakové sady, měli byste nejprve převést na UTF-8, například:

<file iconv -f latin1 -t utf8 | xclip -sel c

pro soubor zakódovaný v latin1 /iso8859-1 .

xsel nefunguje s binárními daty (neakceptuje prázdné bajty), ale xclip ano.

Chcete-li jej uložit jako CUT_BUFFER (které jsou stále dotazovány některými aplikacemi, jako je xterm když si nic nenárokuje výběry SCHRÁNKA nebo PRIMARY X a nepotřebujete mít spuštěný proces, který by to obsluhoval jako pro výběry), i když to dnes pravděpodobně nebudete chtít nebo nebudete muset používat:

xprop -root -format CUT_BUFFER0 8s -set CUT_BUFFER0 "$(cat file)"

(odstraní koncové znaky nového řádku ze file ).

Obrazovka GNU

screen GNU má readbuf příkaz k uschování obsahu souboru do jeho vlastní vyrovnávací paměti pro kopírování a vkládání (kterou vložíte pomocí ^A] ). Takže:

screen -X readbuf file

Apple OS/X

Ačkoli Apple OS/X může použijte X11. Ve výchozím nastavení ne, pokud nespustíte aplikaci X11. Budete moci použít xclip nebo xsel tam by OS/X měl synchronizovat výběr X11 SCHRÁNKY s vyrovnávacími pamětmi pracovní desky OS/X, ale spouštět server X11 jen kvůli tomu by byla trochu škoda.

V OS/X můžete použít pbcopy příkaz k uložení libovolného obsahu do kartonu buffery:

pbcopy < file

(očekává se, že kódování znaků souboru bude odpovídat místnímu nastavení). Chcete-li uložit výstup příkazu:

mycommand | pbcopy

Skořápky

Většina shellů má své vlastní vyrovnávací paměti pro kopírování a vkládání. V režimu emacs operace vyjmutí a kopírování ukládají zkopírovaný/vyjmutý text do zásobníku, který vytáhnete/vložíte pomocí Ctrl-Y a procházejte pomocí Alt+Y

Související:Vzít první sloupec ze 2 souborů a zapsat ho do 3. souboru?

zsh CUTBUFFER/killring

V zsh , zásobník je uložen v $killring pole a horní část zásobníku v $CUTBUFFER proměnná, ačkoli tyto proměnné jsou dostupné pouze z widgetů Zsh Line Editor (zle) a několik specializovaných widgetů je preferovaným způsobem, jak s nimi manipulovat.

Protože ty jsou dostupné pouze přes ZLE, je to s příkazy trochu spletité:

zmodload zsh/mapfile
zle-line-init() {
  if [ -n "$FILE_TO_COPY" ]; then
    zle copy-region-as-kill $mapfile[$FILE_TO_COPY]
    unset FILE_TO_COPY
  fi
}
mycommand | pbcopy
mycommand | pbcopy
zle -N zle-line-init
file-copy() FILE_TO_COPY=$1:A       

zle-line-init speciální widget se spustí jednou na začátku každého nového příkazového řádku. To znamená, že soubor bude zkopírován až na další výzvu. Pokud například:

file-copy file; sleep 2

Soubor bude zkopírován až po těchto 2 sekundách.


Linux
  1. Jak uložit výstup SHOW PROCESSLIST do souboru v MySQL?

  2. Grep Word v souboru a pak zkopírujte soubor?

  3. Nejúčinnější způsob, jak vyprázdnit obsah souboru?

  1. Jak vypsat seznam N’th Youngest File (bez analýzy Ls!)?

  2. Jak mohu zkopírovat výstup příkazu přímo do schránky?

  3. Jak zkopírovat vyrovnávací paměť GNU Screen copy do schránky?

  1. Zkopírujte soubory v terminálu Linux

  2. Zkopírujte obsah souboru do schránky v terminálu Linux

  3. Jak mohu zkopírovat výstup ze vzdáleného příkazu do místní schránky?