GNU/Linux >> Znalost Linux >  >> Linux

Linux:zkopírujte a vytvořte cílový adresář, pokud neexistuje

mkdir -p "$d" && cp file "$d"

(pro cp taková možnost neexistuje ).


Pokud platí obě následující:

  1. Používáte GNU verzi cp (a nikoli například verze pro Mac) a
  2. Kopírujete z nějaké existující adresářové struktury a stačí ji znovu vytvořit

pak to můžete udělat pomocí --parents příznak cp . Z informační stránky (lze zobrazit na http://www.gnu.org/software/coreutils/manual/html_node/cp-invocation.html#cp-invocation nebo pomocí info cp nebo man cp ):

--parents
     Form the name of each destination file by appending to the target
     directory a slash and the specified name of the source file.  The
     last argument given to `cp' must be the name of an existing
     directory.  For example, the command:

          cp --parents a/b/c existing_dir

     copies the file `a/b/c' to `existing_dir/a/b/c', creating any
     missing intermediate directories.

Příklad:

/tmp $ mkdir foo
/tmp $ mkdir foo/foo
/tmp $ touch foo/foo/foo.txt
/tmp $ mkdir bar
/tmp $ cp --parents foo/foo/foo.txt bar
/tmp $ ls bar/foo/foo
foo.txt

Linux
  1. Jak Linux zpracovává více po sobě jdoucích oddělovačů cest (/home////username///soubor)?

  2. Bash =~ Regex A Https://regex101.com/?

  3. Linux – sloučení /usr/bin A /usr/sbin do /bin (gnu/linux)?

  1. Jak kopírovat / přesouvat soubory a adresáře v Linuxu pomocí příkazů „cp“ a „mv“.

  2. Kdy mám použít /dev/shm/ a kdy /tmp/?

  3. Jaký je rozdíl mezi /tmp a /run?

  1. Linux:Rozdíl mezi /dev/console, /dev/tty a /dev/tty0?

  2. Jak změnit výchozí /tmp na /home/user/tmp

  3. Rozdíl a správné použití pro /tmp a /var/tmp