Sposta un oggetto da una cartella padre alla sua sottocartella

-2

Mi chiedevo se qualcuno potesse aiutarmi con uno script che spostasse un file / file da una cartella principale nella sua sottocartella. Questo è tutto. Ho visto script che spostano i file nelle loro cartelle madri, ma nulla per spostarli verso il basso di un piolo. È possibile?

    
posta rcktship 13.10.2016 - 19:26
fonte

2 risposte

1

Perché complicarsi.

cd /Users/admin/Desktop/test &&
mkdir -p Archive &&
find . -maxdepth 1 -type f -exec mv -nv {} Archive \;

Pro:

  • Gestisce correttamente spazi, caratteri speciali o anche newline nei nomi dei file.
  • Esce se non è possibile accedere alla directory test .
  • Esce se la directory Archive non esiste e non può essere creata.
  • Ti dice quali file si stanno spostando.
  • Non sovrascrive i file esistenti con lo stesso nome.
  • In realtà è un one-liner, appena suddiviso per la leggibilità:

    cd /Users/admin/Desktop/test && mkdir -p Archive && find . -maxdepth 1 -type f -exec mv -nv {} Archive \;
    
risposta data 14.10.2016 - 05:46
fonte
-2

Non è perfetto ma il seguente lavoro funzionerà per lo più. Ipotesi:

• La directory sorgente è / Users / admin / Desktop / test (può essere modificata)

• La directory di destinazione nidificata è Archive

#!/bin/bash

oldIFS=$IFS
IFS=$(/bin/echo -en "\n\b")

dir="/Users/admin/Desktop/test"

if [ -d $dir/Archive ] ; then
    for FILE in '/bin/ls $dir | /usr/bin/grep -v Archive' ; do
        /bin/echo "Moving $FILE"
        /bin/mv $dir/$FILE $dir/Archive/$FILE
    done
    else
        /bin/echo "Folder $dir/Archive does not exist"
fi

IFS=$oldIFS

Nota che se hai altri file con "Archive" nel nome saranno saltati, sono sicuro che c'è un modo migliore.

    
risposta data 14.10.2016 - 03:54
fonte

Leggi altre domande sui tag