From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on inbox.vuxu.org X-Spam-Level: X-Spam-Status: No, score=-3.2 required=5.0 tests=DKIM_SIGNED,DKIM_VALID, DKIM_VALID_EF,HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI, RCVD_IN_DNSWL_MED autolearn=ham autolearn_force=no version=3.4.4 Received: from zero.zsh.org (zero.zsh.org [IPv6:2a02:898:31:0:48:4558:7a:7368]) by inbox.vuxu.org (Postfix) with ESMTP id 54ADA25863 for ; Tue, 30 Apr 2024 10:16:20 +0200 (CEST) ARC-Seal: i=1; cv=none; a=rsa-sha256; d=zsh.org; s=rsa-20210803; t=1714464980; b=ssTkqO4NiyS8yoQktSi7rkSzqe4OORA/edB/jKSeKw2+scS3LJFgJLE7t7D6npHT6lD3Y4fHdX rXuMyO52Z8+BNKAUjHJrL+uy/opWv7g07QxF9YURVaihQm1XLrm4cPsQuUpri2+u4JG3f4hCwr 273bmoZV6WRoH94ZDlrrq8E8+c4PXUk+jDnzrDtpd6Dr0Ka9NpDW+rZSw7c1DD56N9xSlNDUot w5fhEsyccjCNybNuoiIFP4V7qfCCCrkX2tYgH6dG263u34SfigVn7DqPUjSBdXCoZtM+XGhcPq 8Bw7adyCgxnQihb5C2KqS8XT8GYzVxFnOfNz8yqILkiMIg==; ARC-Authentication-Results: i=1; zsh.org; iprev=pass (mail-pf1-f169.google.com) smtp.remote-ip=209.85.210.169; dkim=pass header.d=awkwork-com.20230601.gappssmtp.com header.s=20230601 header.a=rsa-sha256; dmarc=none header.from=awkwork.com; arc=none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed; d=zsh.org; s=rsa-20210803; t=1714464980; bh=zK8+UpF0E77OoTYmPl6tLGqWZPh7XlQiVjTygwjPZaM=; h=List-Archive:List-Owner:List-Post:List-Unsubscribe:List-Subscribe:List-Help: List-Id:Sender:Content-Type:To:Subject:Message-ID:Date:From:MIME-Version: DKIM-Signature:DKIM-Signature; b=siSYf3YMNcqZQ/jls65p4fVssBMsh+7FZdXN3VNxVyHtPyj4ziv9j7D6YAbEIZ31FAIEnrsvg2 3s8ogLZHEDEDMPMAmgmXRY0+i/IMY0YHWtB0qUTMmsbNu437aVwkF7lK+6hS/B98BwwuvWL+ZJ uOuIHkq+moaRRvgsRBYEiYeHOn8H8hbfurbzvRr27Od5FLy5gAdq9dWd/Qf2j3FxtPT8NvtUL0 RVSJUztTXX1d3RX4PfJQVUTTQcGIEebqF2BBFJiZCEjEN+2A0ZRyJva83uDxUuHzpIDRjUCd2w J7Fy+RcH5PjFegO1fHUHLax7rOm7snR5EQAPr2cgSRZaVg==; DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=zsh.org; s=rsa-20210803; h=List-Archive:List-Owner:List-Post:List-Unsubscribe: List-Subscribe:List-Help:List-Id:Sender:Content-Type:To:Subject:Message-ID: Date:From:MIME-Version:Reply-To:Cc:Content-Transfer-Encoding:Content-ID: Content-Description:Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc :Resent-Message-ID:In-Reply-To:References; bh=zK8+UpF0E77OoTYmPl6tLGqWZPh7XlQiVjTygwjPZaM=; b=SpQ4oZHTjOD6RLM2TjJLddCGJJ IxRFWsWTwmRdptashwFDb8G7eJwbXJit5oy78Tg+XkP5MD/RCGjaRZHX+imunQ3KHwldDU5JCjY7E 353bEiMMZ3tb9GYMB9zWmVMk6q0gLhs3pat6IZpgHa/QfzZo/4+uBaRF+d78b1GCKTTvwrqLO/cWE vopirzx3lHTesIG1qZ8tL075N+64vd3gTmOuznSQ3Mfb1IluYNJK5/FGdVh29HRTjYg0JZwR0d3M+ GTyh0P2jpeneLjHA7wYif7mL78rY1SmjJvH2F7j4wRRVIBXGdQGQorM1Ry5gigF6mmrkkaVTEUQq4 zsG0kUGw==; Received: by zero.zsh.org with local id 1s1iex-000IPR-Ks; Tue, 30 Apr 2024 08:16:19 +0000 Authentication-Results: zsh.org; iprev=pass (mail-pf1-f169.google.com) smtp.remote-ip=209.85.210.169; dkim=pass header.d=awkwork-com.20230601.gappssmtp.com header.s=20230601 header.a=rsa-sha256; dmarc=none header.from=awkwork.com; arc=none Received: from mail-pf1-f169.google.com ([209.85.210.169]:51516) by zero.zsh.org with esmtps (TLS1.3:TLS_AES_128_GCM_SHA256:128) id 1s1idu-000Hhe-LR; Tue, 30 Apr 2024 08:15:15 +0000 Received: by mail-pf1-f169.google.com with SMTP id d2e1a72fcca58-6f103b541aeso4531328b3a.3 for ; Tue, 30 Apr 2024 01:15:14 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=awkwork-com.20230601.gappssmtp.com; s=20230601; t=1714464913; x=1715069713; darn=zsh.org; h=to:subject:message-id:date:from:mime-version:from:to:cc:subject :date:message-id:reply-to; bh=zK8+UpF0E77OoTYmPl6tLGqWZPh7XlQiVjTygwjPZaM=; b=s0iivgNzBJLpc0L+cVSAMyb5lsMOKu7RHRHSY9hSj8JT3LaEbixARlCMJ+guzZvTCt zTA/1dEHDuPf/vycmPIAnLX20Gc3L/4NOcNc9mGgBoGBl3vx+h8HsVcxaoypKE5/24DA jhEM+sk/O+6xDeB2stZmZJ/4sKpEcc4Cq+4xoLQ6qTmXBPuFS5gRDeVpKYFgFcC6Gqtv Az9w4Yo5etCtfVDdPAKXI+O9f6SA4OZ0x4ROosRluNiVi4py2+Z46JCvgnt+hCKvan5g p51RBvsIYQGpN+8JrrIe748YdBuciuWum86vfUc4ePjnkq4N6Oda7rhDQGP2ltisCl0z V5Tg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1714464913; x=1715069713; h=to:subject:message-id:date:from:mime-version:x-gm-message-state :from:to:cc:subject:date:message-id:reply-to; bh=zK8+UpF0E77OoTYmPl6tLGqWZPh7XlQiVjTygwjPZaM=; b=ATk2Z1/E98uVduXcpH3zr9ThAQKRuEB+73bpvkwylXPXDPN/PLP5SUIxBRzsT8WT3M aeJRsxoC85jL6VO1CDvmAxZxiprIGIFKVIAhhVuIFcAv1+kqf7UP95xifyqEMuYuxeKf QFSkxDmCb0NCo+MJusbffi3tfNcaIo5oRSYsk7lv6WsuBboL6vXMyaemmqrnEC5fmSz2 8IEo00HhDDk0uGCF1tN1RJoxdhZdu7r3FOl/VVqjw707mxBYd/WGBpPth8YSd/D8iHYd as56QY3817y+Djqj1KqlybnTC1aQlrlsldgjgzkJgeIOAZUsGPx18N5RdiF81xpaqhIm VqxQ== X-Gm-Message-State: AOJu0YwjHIiuHqDslvGeZnYVON9Sbxl/bHyW55OlZmOHSwBNS3oJ1hXI yRgxQS9nxJQ92mdzbf9dL9LvUeCVT8cWeQRGxzvRPoug9n28+XeVT+O1ICHytqi9E487n75Q1SZ AbMam8z+b9BhURY7UI0YOYO5QJsYH48dbBKqFYnDEVV5H4/ym X-Google-Smtp-Source: AGHT+IGdPcKquZb67gp81hmMZybMX5H0Jz+TG5xJgTClaEuD4T49zQSdFUG4Li3w1oa4UGjg6QvmZ+xb3OP0digSjBs= X-Received: by 2002:a05:6a20:2589:b0:1a7:bb6d:6589 with SMTP id k9-20020a056a20258900b001a7bb6d6589mr16314087pzd.29.1714464912632; Tue, 30 Apr 2024 01:15:12 -0700 (PDT) MIME-Version: 1.0 From: Alan Wagner-Krankel Date: Tue, 30 Apr 2024 03:14:46 -0500 Message-ID: Subject: Inconsistent behavior with comparisons and recursive glob patterns To: Zsh Users Content-Type: text/plain; charset="UTF-8" X-Seq: 29862 Archived-At: X-Loop: zsh-users@zsh.org Errors-To: zsh-users-owner@zsh.org Precedence: list Precedence: bulk Sender: zsh-users-request@zsh.org X-no-archive: yes List-Id: List-Help: , List-Subscribe: , List-Unsubscribe: , List-Post: List-Owner: List-Archive: The results of these conditional expressions using recursive glob operators were unexpectedly different: > [[ f0 = **/f? ]] && print true || print false false > setopt extendedglob > [[ f0 = (*/)#f? ]] && print true || print false true Since **/ is a shorthand version of (*/)#, it seems like they both should have returned 'true'. The comparisons behave the same when there is at least one directory in the path: > [[ d1/f1 = **/f? ]] && print true || print false true > setopt extendedglob > [[ d1/f1 = (*/)#f? ]] && print true || print false true I came across this because it affects the behavior of zmv, via a test that filters filenames (line 254 in zsh5.9). An example: > mkdir d1 d1/d2 > touch f0 d1/f1 d1/d2/f2 > print -rl -- **/f? d1/d2/f2 d1/f1 f0 > autoload zmv > zmv -n '**/f?' '$f.txt' mv -- d1/d2/f2 d1/d2/f2.txt mv -- d1/f1 d1/f1.txt > zmv -n '(*/)#f?' '$f.txt' mv -- d1/d2/f2 d1/d2/f2.txt mv -- d1/f1 d1/f1.txt mv -- f0 f0.txt I think both zmv calls should have attempted to update the 'f0' file in the base directory. Am I missing something? Thanks, Awk