Python on Azure: Part 2—Deploying Django services to Azure Web Apps | Azure Friday
Obsah:
- Jak používat Linux
xargs
Command - Jak zobrazit příkaz a vyzvat uživatele
- Jak omezit počet argumentů
- Jak spustit více příkazů
- Jak určit oddělovač
- Jak číst položky ze souboru
- Použití
xargs
sfind
- Používání xargů k oříznutí znaků mezery
- Závěr
Nástroj
xargs
vám umožňuje vytvářet a provádět příkazy ze standardního vstupu. Obvykle se používá v kombinaci s jinými příkazy potrubím.
S
xargs
můžete poskytnout standardní vstup jako argument pro nástroje příkazového řádku, jako jsou
mkdir
a
rm
.
V tomto tutoriálu se seznámíme se základy používání příkazu
xargs
.
Jak používat Linux
xargs
Command
xargs
čte argumenty ze standardního vstupu oddělené mezerami nebo řádky a provede zadaný příkaz pomocí vstupu jako argumenty příkazu. Pokud není zadán žádný příkaz, výchozí je
/bin/echo
.
Syntaxe příkazu
xargs
je následující:
xargs]
Nejzákladnějším příkladem použití
xargs
by bylo předat několik řetězců oddělených mezerami pomocí roury do
xargs
a spustit příkaz, který tyto řetězce použije jako argumenty.
echo "file1 file2 file3" | xargs touch
Ve výše uvedeném příkladu
xargs
standardní vstup do
xargs
a pro každý argument se spustí příkaz
touch
, čímž se vytvoří tři soubory. Je to stejné, jako kdybyste spustili:
Jak zobrazit příkaz a vyzvat uživatele
Chcete-li příkaz vytisknout na terminálu před jeho provedením, použijte volbu
-t
(
--verbose
):
echo "file1 file2 file3" | xargs -t touch
touch file1 file2 file3
echo "file1 file2 file3" | xargs -p touch
Zadejte
y
nebo
Y
pro potvrzení a spuštění příkazu:
touch file1 file2 file3 ?…y
Tato možnost je užitečná při provádění destruktivních příkazů.
Jak omezit počet argumentů
Ve výchozím nastavení je počet argumentů předaných příkazu určen limitem systému.
Volba
-n
(
--max-args
) určuje počet argumentů, které mají být předány danému příkazu.
xargs
spustí zadaný příkaz tolikrát, kolikrát je třeba, dokud nejsou vyčerpány všechny argumenty.
V následujícím příkladu je počet argumentů, které jsou čteny ze standardního vstupu, omezen na 1.
echo "file1 file2 file3" | xargs -n 1 -t touch
Jak můžete vidět z podrobného výstupu níže, příkaz touch se provádí samostatně pro každý argument:
touch file1 touch file2 touch file3
Jak spustit více příkazů
Chcete-li spouštět více příkazů s
xargs
, použijte volbu
-I
. Funguje tak, že definuje možnost
replace-str
za volbou
-I
a všechny výskyty
replace-str
jsou nahrazeny argumentem předaným xargs.
Následující příklad
xargs
spustí dva příkazy, nejprve vytvoří soubory pomocí
touch
a potom vypíše soubory pomocí příkazu
ls
:
echo "file1 file2 file3" | xargs -t -I % sh -c '{ touch %; ls -l %; }'
-rw-r--r-- 1 linuxize users 0 May 6 11:54 file1 -rw-r--r-- 1 linuxize users 0 May 6 11:54 file2 -rw-r--r-- 1 linuxize users 0 May 6 11:54 file3
Běžná volba pro
replace-str
je
%
. Můžete však použít jiný zástupný symbol, například
ARGS
:
echo "file1 file2 file3" | xargs -t -I ARGS sh -c '{ touch ARGS; ls -l ARGS; }'
Jak určit oddělovač
Použijte volbu
-d
(
--delimiter
) pro nastavení vlastního oddělovače, kterým může být buď jeden znak, nebo úniková sekvence začínající na
\
.
Následující příklad používáme
;
jako oddělovač:
echo "file1;file2;file3" | xargs -d ; -t touch
Jak číst položky ze souboru
Příkaz xargs může také číst položky ze souboru místo standardního vstupu. Chcete-li to provést, použijte volbu
-a
(
--arg-file
) následovanou názvem souboru.
V následujícím příkladu bude příkaz
xargs
číst soubor
ips.txt
a ping každou IP adresu.
8.8.8.8 1.1.1.1
Používáme také volbu
-L 1
, která dává
xargs
pokyn, aby najednou přečetli jeden řádek. Pokud je tato volba vynechána,
xargs
předají všechny IP adresy jednomu příkazu
ping
.
xargs -t -L 1 -a ips.txt ping -c 1
ping -c 1 8.8.8.8 PING 8.8.8.8 (8.8.8.8) 56(84) bytes of data. 64 bytes from 8.8.8.8: icmp_seq=1 ttl=50 time=68.1 ms… ping -c 1 1.1.1.1 PING 1.1.1.1 (1.1.1.1) 56(84) bytes of data. 64 bytes from 1.1.1.1: icmp_seq=1 ttl=59 time=21.4 ms
Použití
xargs
s
find
xargs
se nejčastěji používá v kombinaci s příkazem
find
. Pomocí
xargs
find
můžete vyhledat konkrétní soubory a poté pomocí
xargs
provádět operace s těmito soubory.
Chcete-li se vyhnout problémům s názvy souborů, které obsahují nové řádky nebo jiné speciální znaky, vždy použijte volbu find
-print0
, která způsobí, že
find
tisk celého názvu souboru následovaného nulovým znakem. Tento výstup lze správně interpretovat
xargs
pomocí volby
-0
, (-
--null
).
V následujícím příkladu
find
tisk úplných jmen všech souborů v adresáři
/var/www/.cache
a
xargs
předají cesty k souboru
rm
:
find /var/www/.cache -type f -print0 | xargs -0 rm -f
Používání xargů k oříznutí znaků mezery
xargs
lze také použít jako nástroj k odstranění mezery z obou stran daného řetězce. Jednoduše dejte řetězec do příkazu
xargs
a provede oříznutí:
echo " Long line " | xargs
Long line
To může být užitečné při porovnávání řetězců v shellových skriptech.
#!/bin/bash VAR1=" Linuxize " VAR2="Linuxize" if]; then echo "Strings are equal." else echo "Strings are not equal." fi ## Using xargs to trim VAR1 if]; then echo "Strings are equal." else echo "Strings are not equal." fi
Strings are not equal. Strings are equal.
Závěr
xargs
je obslužný program příkazového řádku v systému Linux, který umožňuje vytvářet a provádět příkazy.
Podrobnější informace o každé možnosti xargs naleznete v manuálové stránce xargs.
terminál xargsPříkaz Chmod v Linuxu (oprávnění souboru)

V Linuxu je přístup k souborům spravován prostřednictvím oprávnění k souborům, atributů a vlastnictví. Tento tutoriál popisuje, jak pomocí příkazu chmod změnit přístupová oprávnění k souborům a adresářům.
Příkaz Chgrp v Linuxu (změna skupiny)

V systému Linux je každý soubor spojen s vlastníkem a skupinou a má oprávnění, která určují, kteří uživatelé mohou soubor číst, zapisovat nebo provádět. Příkaz chgrpc mění vlastnictví dané soubory ve skupině.
Příkaz Cp v Linuxu (kopírování souborů)

cp je obslužný program příkazového řádku pro kopírování souborů a adresářů v systémech Unix a Linux.