# 7z NICHT rekursiv nutzen?

## BlackEye

Hallo Leute,

eigentlich steht doch der Schalter -r für Rekursion. Also lasse ich ihne weg, sollte Rekursion abgeschaltet sein (genau das möchte ich). Doch egal wie und was ich angebe (-r, -r- oder -r0), er packt jedes mal rekursiv. Ist das ein Bug oder bin ich nur zu blöd das Ding zu benutzen?  :Smile: 

```
$ 7z a test.7z

7-Zip [64] 9.13 beta  Copyright (c) 1999-2010 Igor Pavlov  2010-04-15

p7zip Version 9.13 (locale=de_DE.UTF-8,Utf16=on,HugeFiles=on,2 CPUs)

Scanning

Creating archive test.7z

Everything is Ok

(~/test/7ztest) $ 7z l test.7z 

7-Zip [64] 9.13 beta  Copyright (c) 1999-2010 Igor Pavlov  2010-04-15

p7zip Version 9.13 (locale=de_DE.UTF-8,Utf16=on,HugeFiles=on,2 CPUs)

Listing archive: test.7z

--

Path = test.7z

Type = 7z

Solid = -

Blocks = 0

Physical Size = 142

Headers Size = 142

   Date      Time    Attr         Size   Compressed  Name

------------------- ----- ------------ ------------  ------------------------

2012-04-05 14:02:46 ....A            0            0  file1

2012-04-05 14:02:55 ....A            0            0  folder/file2

2012-04-05 14:02:55 D....            0            0  folder

------------------- ----- ------------ ------------  ------------------------

                                     0            0  2 files, 1 folders
```

----------

## Necoro

Die Man-Page sagt:

-r[-|0]

Recurse subdirectories (CAUTION: this flag does not do what you think, avoid using it)

Der "does not do what you think" sagt in dem Falle doch eigentlich schon alles ^^.

----------

## BlackEye

lol - klasse. Damit bin ich nicht in der Lage einfach nur mal ein Verzeichnis ohne seine Unterverzeichnisse einzupacken - blöd  :Smile: 

----------

## Knieper

Sind es so viele Dateien, dass die Argumente überlaufen? "*(.)" listet unter zsh nur die regulären Dateien auf und damit funktioniert:

```

>ls *

a  b

1:

a  b

2:

a  b

>7z a foo.7z *(.)

7-Zip 9.13 beta  Copyright (c) 1999-2010 Igor Pavlov  2010-04-15

p7zip Version 9.13 (locale=en_GB.UTF-8,Utf16=on,HugeFiles=on,1 CPU)

Scanning

Creating archive foo.7z

Everything is Ok

>7z l foo.7z

7-Zip 9.13 beta  Copyright (c) 1999-2010 Igor Pavlov  2010-04-15

p7zip Version 9.13 (locale=en_GB.UTF-8,Utf16=on,HugeFiles=on,1 CPU)

Listing archive: foo.7z

--

Path = foo.7z

Type = 7z

Solid = -

Blocks = 0

Physical Size = 116

Headers Size = 116

   Date      Time    Attr         Size   Compressed  Name

------------------- ----- ------------ ------------  ------------------------

2012-04-10 10:19:42 ....A            0            0  a

2012-04-10 10:19:46 ....A            0            0  b

------------------- ----- ------------ ------------  ------------------------

                                     0            0  2 files, 0 folders

```

----------

## BlackEye

Hm, bin ich überfragt. Wie viele Argumente gehen denn? Vermutlich 65k oder? Also hier liegen nur knapp 1900 Datei im Verzeichnis. Damit wäre das wohl möglich. Versuche ich beim nächsten mal - danke für den Tipp!

Edit: Da ich die bash und nicht zsh nutze, müsste dieses Kommando auch funktionieren:

```
find . -maxdepth 1 -type f | xargs 7z a foo.7z
```

----------

## Knieper

Eher weniger, hängt von Architektur, System, Shell, 7z ab. Du kannst immernoch ein find drumbasteln oder nach Namen (a*,...) einschränken...

----------

## BlackEye

Ach mist - gerade fällt mir ein dass ich das ganze ja unter Windows beim Kunden nutzen wollte - damit entfällt das alles  :Smile: 

----------

## toralf

 *BlackEye wrote:*   

> Edit: Da ich die bash und nicht zsh nutze, müsste dieses Kommando auch funktionieren:
> 
> ```
> find . -maxdepth 1 -type f | xargs 7z a foo.7z
> ```
> ...

 Hhm, inwiefern macht denn die Shell in diesem Fall für einen Unterschied ?

----------

## Necoro

 *toralf wrote:*   

>  *BlackEye wrote:*   Edit: Da ich die bash und nicht zsh nutze, müsste dieses Kommando auch funktionieren:
> 
> ```
> find . -maxdepth 1 -type f | xargs 7z a foo.7z
> ```
> ...

 

bash: "ls *(.)" --> Syntaxfehler

zsh: "ls *(.)" --> listet alle Dateien (und keine Verzeichnisse) im aktuellen Verzeichnis

----------

