From owner-freebsd-questions Fri Aug 2 17:46:49 2002 Delivered-To: freebsd-questions@freebsd.org Received: from mx1.FreeBSD.org (mx1.FreeBSD.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id E414037B401 for ; Fri, 2 Aug 2002 17:46:43 -0700 (PDT) Received: from dan.emsphone.com (dan.emsphone.com [199.67.51.101]) by mx1.FreeBSD.org (Postfix) with ESMTP id 2E30343E3B for ; Fri, 2 Aug 2002 17:46:43 -0700 (PDT) (envelope-from dan@dan.emsphone.com) Received: (from dan@localhost) by dan.emsphone.com (8.12.5/8.12.5) id g730MaY5004843; Fri, 2 Aug 2002 19:22:36 -0500 (CDT) (envelope-from dan) Date: Fri, 2 Aug 2002 19:22:36 -0500 From: Dan Nelson To: Pascal Giannakakis , freebsd-questions@FreeBSD.ORG Subject: Re: smart file gobbling: exclude one file from list Message-ID: <20020803002236.GA4398@dan.emsphone.com> References: <001201c23a6e$17e78e60$0200a8c0@capm> <20020802215617.GA9408@dan.emsphone.com> <20020802220620.GN52563@freepuppy.bellavista.cz> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20020802220620.GN52563@freepuppy.bellavista.cz> X-OS: FreeBSD 5.0-CURRENT X-message-flag: Outlook Error User-Agent: Mutt/1.5.1i Sender: owner-freebsd-questions@FreeBSD.ORG Precedence: bulk List-ID: List-Archive: (Web Archive) List-Help: (List Instructions) List-Subscribe: List-Unsubscribe: X-Loop: FreeBSD.ORG In the last episode (Aug 03), Roman Neuhauser said: > > In the last episode (Aug 02), Pascal Giannakakis said: > > > if i do "cp * /destination", all files in the current directory > > > will be copied to /destination. What do i have to type, if i want > > > to expand the '*' to all files, except of one? For example, if i > > > wanted to exclude the file "notme" in the current directory? > > > > > > I know i could hack it with grep, but this fails as all files are > > > on one line. I wonder how you gurus would solve this! :) > > > > If you are using zsh and have the EXTENDED_GLOB option set, > > > > cp *~notme /destination > > > > Otherwise, you'll need to do something like > > > > cp $(echo ' ' * ' ' | sed -e 's/ notme / /') /destination > > this is somewhat easier: > > cp $(echo `ls|grep -xv notme`) /destination Although I don't think either will handle files with spaces in them. -- Dan Nelson dnelson@allantgroup.com To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-questions" in the body of the message