GNU/Linux >> Znalost Linux >  >> Linux

Přidání časového razítka k názvu souboru s mv v BASH

Těch pár řádků, které jsi zveřejnil ze svého scénáře, mi přijde v pořádku. Je to pravděpodobně něco trochu hlubšího.

Musíte zjistit, který řádek vám dává tuto chybu. Přidejte set -xv na začátek skriptu. Tím se vytiskne číslo řádku a příkaz, který se provádí do STDERR . To vám pomůže určit, kde ve vašem skriptu dochází k této konkrétní chybě.

BTW, máte v horní části skriptu shebang? Když vidím něco takového, normálně očekávám, že je to problém se Shebangem. Pokud jste například měli #! /bin/bash nahoře, ale váš bash interpret se nachází v /usr/bin/bash , zobrazí se tato chyba.

UPRAVIT

Nová otázka:Jak mohu soubor správně uložit, abych nemusel tuto opravu provádět pokaždé, když soubor znovu pošlu?

Dva způsoby:

  1. Vyberte Upravit->Konverze EOL->Formát Unix při úpravě souboru. Jakmile bude mít správné konce řádků, Notepad++ je zachová.
  2. Chcete-li se ujistit, že všechny nové soubory mají správné konce řádků, přejděte na Nastavení->Předvolby položku nabídky a vytáhněte Předvolby dialogové okno. Vyberte Nový dokument/výchozí adresář tab. V části Nový dokument a Formátovat , vyberte Unix přepínač. Klikněte na tlačítko Zavřít tlačítko.

Tento příkaz používám pro jednoduché otočení souboru:

mv output.log `date +%F`-output.log

V místní složce mám 2019-09-25-output.log


mv server.log logs/$(date -d "today" +"%Y%m%d%H%M").log

Jednořádková metoda v bash funguje takto.

[nějaké ven]>$(datum "+%Y.%m.%d-%H.%M.%S").ver

vytvoří soubor s názvem časového razítka s příponou ver. Pracovní soubor se záznamem snímku s názvem souboru s datovým razítkem může ukázat, že to funguje.

find . -type f -exec ls -la {} \; | cut -d ' ' -f 6- >$(date "+%Y.%m.%d-%H.%M.%S").ver

Samozřejmě

cat somefile.log > $(date "+%Y.%m.%d-%H.%M.%S").ver

nebo ještě jednodušší

ls > $(date "+%Y.%m.%d-%H.%M.%S").ver


Linux
  1. Čtení řádků ze souboru s Bash:For vs. Zatímco?

  2. Získejte poslední dirname/filename v argumentu cesty k souboru v Bash

  3. Alias ​​s proměnnou v bash

  1. Název souboru se netiskne správně s podtržítkem _ v Bash

  2. Přidání do $PYTHONPATH pomocí bash skriptu

  3. Spuštění bash skriptu nebo binárního c na souborovém systému s možností noexec

  1. The Bash ‘?

  2. Bash -c s pozičními parametry?

  3. Hromadné přejmenování souboru Bash pomocí čítače?