/ / Kopiuj pliki do najnowszego katalogu - linux, bash, skrypty

Skopiuj pliki do najnowszego katalogu - linux, bash, scripting

Chcę stworzyć skrypt Bash, który będzie wyświetlał najnowszy utworzony katalog i jeśli znajdzie najnowszy katalog, musi skopiować pliki na ten katalog.

Obecnie mam ten kod

    #!/bin/bash

cd /home/test/hello
echo "Searching, the latest made Directory!"
ls -tl | sed -n 2p
#It is not copying yet, because i can"t figure out how to let it Copy the stuff to the newest Directory

Ten fragment kodu pokazuje najnowszy utworzony katalog, ale nie mogę dowiedzieć się, jak to zrobić, aby następnie kopiował elementy do tego katalogu

Jako przykład.

./script.sh
# Searching the newest Directory
# Found out that the newest Directory is Dir-1
# Copy the files to the Directory Dir-1
-------------------------------------------------------
./script.sh
# Searching the newest Directory
# Found out that the newest Directory is Dir-2
# Copy the files to the DirectoryDir-2
-------------------------------------------------------
./script.sh
# Searching the newest Directory
# Found out that the newest Directory is Dir-3
# Copy the files to the Directory Dir-3

Odpowiedzi:

0 dla odpowiedzi № 1

Musisz wydrukować tylko nazwę najnowszego katalogu, więc nie potrzebujesz opcji -l ls. Usuwa to również linię „sum”, więc pożądanym wyjściem jest pierwsza linia.

ls -t | sed -n 1p

Następnie użyj $() (podstawienie polecenia) składnia przechwytująca dane wyjściowe polecenia do zmiennej:

latest=$(ls -t | sed -n 1p)

a następnie możesz użyć tej zmiennej w swoim cp dowództwo:

cp file file file $latest

To wszystko zakłada, że ​​nie masz zwykłych plików nowszych niż katalog docelowy i że nazwy twoich katalogów nie zawierają spacji ani innych niezwykłych znaków.

Prawdopodobnie byłoby nieco szybciej korzystać z head polecenie, aby wziąć pierwszą linię twojego ls wyjście, zamiast sed.

ls -t | head -1